<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge" >
  <link rel="dns-prefetch" href="https://ZhenshengLee.github.io">
  <title>ROS-Navigation调参 | 哈骑士的博客</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="前言
应项目需求，我需要调整move_base参数，使得机器人可以精确旋转到指定角度，之前只能实现较为精确的到达(x,y)坐标，现在要求，又要精确又要不震荡地达到目标要求。
需要全面了解局部避障算法，才能正确地调整参数。
全面定制ros_navigation_stack基本能够完成机器人导航要求">
<meta property="og:type" content="article">
<meta property="og:title" content="ROS-Navigation调参">
<meta property="og:url" content="https://ZhenshengLee.github.io/2017/01/03/170103-ROS-Navigation调参/index.html">
<meta property="og:site_name" content="哈骑士的博客">
<meta property="og:description" content="前言
应项目需求，我需要调整move_base参数，使得机器人可以精确旋转到指定角度，之前只能实现较为精确的到达(x,y)坐标，现在要求，又要精确又要不震荡地达到目标要求。
需要全面了解局部避障算法，才能正确地调整参数。
全面定制ros_navigation_stack基本能够完成机器人导航要求">
<meta property="og:updated_time" content="2017-01-03T15:46:37.709Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="ROS-Navigation调参">
<meta name="twitter:description" content="前言
应项目需求，我需要调整move_base参数，使得机器人可以精确旋转到指定角度，之前只能实现较为精确的到达(x,y)坐标，现在要求，又要精确又要不震荡地达到目标要求。
需要全面了解局部避障算法，才能正确地调整参数。
全面定制ros_navigation_stack基本能够完成机器人导航要求">
  
    <link rel="alternative" href="/atom.xml" title="哈骑士的博客" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  <link rel="stylesheet" type="text/css" href="/main.68ab53.css">
  <style type="text/css">
  
    #container.show {
      background: linear-gradient(200deg,#a0cfe4,#e8c37e);
    }
  </style>
  

  

</head>

<body>
  <div id="container" q-class="show:isCtnShow">
    <canvas id="anm-canvas" class="anm-canvas"></canvas>
    <div class="left-col" q-class="show:isShow">
      
<div class="overlay" style="background: #4d4d4d"></div>
<div class="intrude-less">
	<header id="header" class="inner">
		<a href="/" class="profilepic">
			<img src="http://7xvunf.com1.z0.glb.clouddn.com/%E5%85%B6%E4%BB%96100.jpg" class="js-avatar">
		</a>
		<hgroup>
		  <h1 class="header-author"><a href="/">黎振胜</a></h1>
		</hgroup>
		
		<p class="header-subtitle">将科技固化为产品——机器人软件开发</p>
		

		<nav class="header-menu">
			<ul>
			
				<li><a href="/">主页</a></li>
	        
				<li><a href="/tags/机器人/">机器人</a></li>
	        
				<li><a href="/tags/嵌入式/">嵌入式</a></li>
	        
				<li><a href="/tags/其他/">其他</a></li>
	        
			</ul>
		</nav>
		<nav class="header-smart-menu">
    		
    			
    			<a q-on="click: openSlider(e, 'innerArchive')" href="javascript:void(0)">所有文章</a>
    			
            
    			
            
    			
    			<a q-on="click: openSlider(e, 'aboutme')" href="javascript:void(0)">关于我</a>
    			
            
		</nav>
		<nav class="header-nav">
			<div class="social">
				
					<a class="github" target="_blank" href="https://github.com/ZhenshengLee" title="github"><i class="icon-github"></i></a>
		        
					<a class="mail" target="_blank" href="mailto://lzs_1993@qq.com" title="mail"><i class="icon-mail"></i></a>
		        
					<a class="linkedin" target="_blank" href="https://cn.linkedin.com/in/zhenshengli" title="linkedin"><i class="icon-linkedin"></i></a>
		        
			</div>
		</nav>
	</header>		
</div>

    </div>
    <div class="mid-col" q-class="show:isShow,hide:isShow|isFalse">
      
<nav id="mobile-nav">
  	<div class="overlay js-overlay" style="background: #4d4d4d"></div>
	<div class="btnctn js-mobile-btnctn">
  		<div class="slider-trigger list" q-on="click: openSlider(e)"><i class="icon icon-sort"></i></div>
	</div>
	<div class="intrude-less">
		<header id="header" class="inner">
			<div class="profilepic">
				<img src="http://7xvunf.com1.z0.glb.clouddn.com/%E5%85%B6%E4%BB%96100.jpg" class="js-avatar">
			</div>
			<hgroup>
			  <h1 class="header-author js-header-author">黎振胜</h1>
			</hgroup>
			
			<p class="header-subtitle"><i class="icon icon-quo-left"></i>将科技固化为产品——机器人软件开发<i class="icon icon-quo-right"></i></p>
			
			
			
				
			
				
			
				
			
				
			
			
			
			<nav class="header-nav">
				<div class="social">
					
						<a class="github" target="_blank" href="https://github.com/ZhenshengLee" title="github"><i class="icon-github"></i></a>
			        
						<a class="mail" target="_blank" href="mailto://lzs_1993@qq.com" title="mail"><i class="icon-mail"></i></a>
			        
						<a class="linkedin" target="_blank" href="https://cn.linkedin.com/in/zhenshengli" title="linkedin"><i class="icon-linkedin"></i></a>
			        
				</div>
			</nav>

			<nav class="header-menu js-header-menu">
				<ul style="width: 70%">
				
				
					<li style="width: 25%"><a href="/">主页</a></li>
		        
					<li style="width: 25%"><a href="/tags/机器人/">机器人</a></li>
		        
					<li style="width: 25%"><a href="/tags/嵌入式/">嵌入式</a></li>
		        
					<li style="width: 25%"><a href="/tags/其他/">其他</a></li>
		        
				</ul>
			</nav>
		</header>				
	</div>
	<div class="mobile-mask" style="display:none" q-show="isShow"></div>
</nav>

      <div id="wrapper" class="body-wrap">
        <div class="menu-l">
          <div class="canvas-wrap">
            <canvas data-colors="#eaeaea" data-sectionHeight="100" data-contentId="js-content" id="myCanvas1" class="anm-canvas"></canvas>
          </div>
          <div id="js-content" class="content-ll">
            <article id="post-170103-ROS-Navigation调参" class="article article-type-post " itemscope itemprop="blogPost">
  <div class="article-inner">
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      ROS-Navigation调参
    </h1>
  

        
        <a href="/2017/01/03/170103-ROS-Navigation调参/" class="archive-article-date">
  	<time datetime="2017-01-03T15:46:37.709Z" itemprop="datePublished"><i class="icon-calendar icon"></i>2017-01-03</time>
</a>
        
      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h2 id="&#x524D;&#x8A00;"><a href="#&#x524D;&#x8A00;" class="headerlink" title="&#x524D;&#x8A00;"></a>&#x524D;&#x8A00;</h2><ul>
<li>&#x5E94;&#x9879;&#x76EE;&#x9700;&#x6C42;&#xFF0C;&#x6211;&#x9700;&#x8981;&#x8C03;&#x6574;move_base&#x53C2;&#x6570;&#xFF0C;&#x4F7F;&#x5F97;&#x673A;&#x5668;&#x4EBA;&#x53EF;&#x4EE5;&#x7CBE;&#x786E;&#x65CB;&#x8F6C;&#x5230;&#x6307;&#x5B9A;&#x89D2;&#x5EA6;&#xFF0C;&#x4E4B;&#x524D;&#x53EA;&#x80FD;&#x5B9E;&#x73B0;&#x8F83;&#x4E3A;&#x7CBE;&#x786E;&#x7684;&#x5230;&#x8FBE;(x,y)&#x5750;&#x6807;&#xFF0C;&#x73B0;&#x5728;&#x8981;&#x6C42;&#xFF0C;&#x53C8;&#x8981;&#x7CBE;&#x786E;&#x53C8;&#x8981;&#x4E0D;&#x9707;&#x8361;&#x5730;&#x8FBE;&#x5230;&#x76EE;&#x6807;&#x8981;&#x6C42;&#x3002;</li>
<li>&#x9700;&#x8981;&#x5168;&#x9762;&#x4E86;&#x89E3;&#x5C40;&#x90E8;&#x907F;&#x969C;&#x7B97;&#x6CD5;&#xFF0C;&#x624D;&#x80FD;&#x6B63;&#x786E;&#x5730;&#x8C03;&#x6574;&#x53C2;&#x6570;&#x3002;</li>
<li>&#x5168;&#x9762;&#x5B9A;&#x5236;ros_navigation_stack&#x57FA;&#x672C;&#x80FD;&#x591F;&#x5B8C;&#x6210;&#x673A;&#x5668;&#x4EBA;&#x5BFC;&#x822A;&#x8981;&#x6C42;</li>
</ul>
<a id="more"></a>
<h2 id="&#x76EE;&#x5F55;"><a href="#&#x76EE;&#x5F55;" class="headerlink" title="&#x76EE;&#x5F55;"></a>&#x76EE;&#x5F55;</h2><!-- toc -->
<ul>
<li><a href="#&#x53C2;&#x8003;">&#x53C2;&#x8003;</a></li>
<li><a href="#&#x4EFB;&#x52A1;&#x8981;&#x6C42;">&#x4EFB;&#x52A1;&#x8981;&#x6C42;</a></li>
<li><a href="#&#x5B66;&#x4E60;&#x8BB0;&#x5F55;">&#x5B66;&#x4E60;&#x8BB0;&#x5F55;</a><ul>
<li><a href="#&#x57FA;&#x672C;&#x8C03;&#x53C2;&#x6307;&#x5357;">&#x57FA;&#x672C;&#x8C03;&#x53C2;&#x6307;&#x5357;</a><ul>
<li><a href="#&#x786E;&#x5B9A;&#x6FC0;&#x5149;&#x6216;&#x8005;&#x58F0;&#x7EB3;&#x7684;&#x5B8C;&#x6574;&#x6027;">&#x786E;&#x5B9A;&#x6FC0;&#x5149;&#x6216;&#x8005;&#x58F0;&#x7EB3;&#x7684;&#x5B8C;&#x6574;&#x6027;</a></li>
<li><a href="#&#x91CC;&#x7A0B;&#x8BA1;&#x7684;&#x6709;&#x6548;&#x6027;">&#x91CC;&#x7A0B;&#x8BA1;&#x7684;&#x6709;&#x6548;&#x6027;</a></li>
<li><a href="#&#x5B9A;&#x4F4D;&#x7684;&#x6709;&#x6548;&#x6027;">&#x5B9A;&#x4F4D;&#x7684;&#x6709;&#x6548;&#x6027;</a></li>
<li><a href="#&#x4EE3;&#x4EF7;&#x5730;&#x56FE;">&#x4EE3;&#x4EF7;&#x5730;&#x56FE;</a></li>
<li><a href="#&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;">&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;</a></li>
</ul>
</li>
<li><a href="#&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x539F;&#x7406;">&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x539F;&#x7406;</a></li>
<li><a href="#&#x5404;&#x6A21;&#x5757;&#x53C2;&#x6570;">&#x5404;&#x6A21;&#x5757;&#x53C2;&#x6570;</a><ul>
<li><a href="#&#x4EE3;&#x4EF7;&#x5730;&#x56FE;-1">&#x4EE3;&#x4EF7;&#x5730;&#x56FE;</a></li>
<li><a href="#&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53C2;&#x6570;">&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53C2;&#x6570;</a><ul>
<li><a href="#sensor-management-parameters">Sensor management parameters</a></li>
<li><a href="#global-filtering-parameters">Global Filtering Parameters</a></li>
<li><a href="#obstaclecostmapplugin">ObstacleCostmapPlugin</a></li>
<li><a href="#voxelcostmapplugin">VoxelCostmapPlugin</a></li>
<li><a href="#&#x81A8;&#x80C0;&#x5730;&#x56FE;">&#x81A8;&#x80C0;&#x5730;&#x56FE;</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#move_base&#x53C2;&#x6570;">move_base&#x53C2;&#x6570;</a></li>
<li><a href="#move_base&#x72B6;&#x6001;&#x673A;&#x5B8F;&#x89C2;&#x884C;&#x4E3A;&#x63A7;&#x5236;">move_base&#x72B6;&#x6001;&#x673A;&#x5B8F;&#x89C2;&#x884C;&#x4E3A;&#x63A7;&#x5236;</a></li>
<li><a href="#&#x6062;&#x590D;&#x884C;&#x4E3A;&#x72B6;&#x6001;&#x5B9A;&#x5236;">&#x6062;&#x590D;&#x884C;&#x4E3A;&#x72B6;&#x6001;&#x5B9A;&#x5236;</a></li>
</ul>
</li>
<li><a href="#&#x53EF;&#x4EE5;&#x5B9A;&#x5236;&#x7684;&#x5730;&#x65B9;">&#x53EF;&#x4EE5;&#x5B9A;&#x5236;&#x7684;&#x5730;&#x65B9;</a><ul>
<li><a href="#&#x53C2;&#x6570;&#x8C03;&#x6574;&#x8981;&#x70B9;">&#x53C2;&#x6570;&#x8C03;&#x6574;&#x8981;&#x70B9;</a></li>
<li><a href="#&#x5B9E;&#x9645;&#x8C03;&#x53C2;&#x7B14;&#x8BB0;">&#x5B9E;&#x9645;&#x8C03;&#x53C2;&#x7B14;&#x8BB0;</a></li>
</ul>
</li>
<li><a href="#&#x4EE5;&#x524D;&#x7684;&#x7B14;&#x8BB0;">&#x4EE5;&#x524D;&#x7684;&#x7B14;&#x8BB0;</a><ul>
<li><a href="#&#x4EE3;&#x4EF7;&#x5730;&#x56FE;-2">&#x4EE3;&#x4EF7;&#x5730;&#x56FE;</a><ul>
<li><a href="#&#x7EFC;&#x8FF0;">&#x7EFC;&#x8FF0;</a></li>
<li><a href="#&#x6807;&#x8BB0;&#x4E0E;&#x6E05;&#x9664;">&#x6807;&#x8BB0;&#x4E0E;&#x6E05;&#x9664;</a></li>
<li><a href="#&#x5360;&#x636E;&#x4E0E;&#x91CA;&#x653E;&#x672A;&#x77E5;&#x533A;&#x57DF;&#x533A;&#x57DF;&#x7684;&#x4E09;&#x79CD;&#x5C5E;&#x6027;">&#x5360;&#x636E;&#x4E0E;&#x91CA;&#x653E;&#xFF0C;&#x672A;&#x77E5;&#x533A;&#x57DF;&#xFF08;&#x533A;&#x57DF;&#x7684;&#x4E09;&#x79CD;&#x5C5E;&#x6027;&#xFF09;</a></li>
<li><a href="#&#x5730;&#x56FE;&#x66F4;&#x65B0;">&#x5730;&#x56FE;&#x66F4;&#x65B0;</a></li>
<li><a href="#tf">tf</a></li>
<li><a href="#&#x4EE3;&#x4EF7;&#x503C;">&#x4EE3;&#x4EF7;&#x503C;</a></li>
<li><a href="#&#x5730;&#x56FE;&#x7C7B;&#x578B;">&#x5730;&#x56FE;&#x7C7B;&#x578B;</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- tocstop -->
<h2 id="&#x53C2;&#x8003;"><a href="#&#x53C2;&#x8003;" class="headerlink" title="&#x53C2;&#x8003;"></a>&#x53C2;&#x8003;</h2><blockquote>
<p><a href="http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide" target="_blank" rel="external">Basic Guide</a><br><a href="http://wiki.ros.org/dwa_local_planner?distro=indigo" target="_blank" rel="external">Local Planner</a><br><a href="http://wiki.ros.org/navigation/Tutorials/RobotSetup#Base_Local_Planner_Configuration" target="_blank" rel="external">Move_base setup</a><br><a href="http://wiki.ros.org/move_base?distro=indigo" target="_blank" rel="external">Move_base Param</a><br><a href="http://blog.csdn.net/heyijia0327/article/details/44983551" target="_blank" rel="external">&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x7684;&#x52A8;&#x6001;&#x7A97;&#x53E3;&#x6CD5;</a><br><a href="http://blog.csdn.net/heyijia0327/article/details/47021861" target="_blank" rel="external">&#x822A;&#x8FF9;&#x63A8;&#x6F14;odometry</a><br><a href="http://blog.csdn.net/u013158492/article/details/50512900" target="_blank" rel="external">DWA&#x7B97;&#x6CD5;&#x5206;&#x6790;</a><br><a href="http://wiki.ros.org/base_local_planner?distro=kinetic" target="_blank" rel="external">base_local_planner</a></p>
</blockquote>
<h2 id="&#x4EFB;&#x52A1;&#x8981;&#x6C42;"><a href="#&#x4EFB;&#x52A1;&#x8981;&#x6C42;" class="headerlink" title="&#x4EFB;&#x52A1;&#x8981;&#x6C42;"></a>&#x4EFB;&#x52A1;&#x8981;&#x6C42;</h2><ul>
<li>&#x4E86;&#x89E3;dynamic window&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x539F;&#x7406;&#xFF0C;&#x8C03;&#x6574;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x4F7F;&#x5F97;&#x6B63;&#x5E38;&#x907F;&#x969C;&#x3002;</li>
<li>&#x4E86;&#x89E3;&#x5F53;&#x524D;&#x4E0A;&#x5C42;&#x89C4;&#x5212;&#x7B56;&#x7565;&#xFF0C;&#x8C03;&#x6574;move_base&#x79BB;&#x6563;&#x89C4;&#x5212;&#x7684;&#x7B56;&#x7565;&#xFF0C;&#x91CD;&#x70B9;&#x662F;&#x8C03;&#x6574;&#x5176;&#x72B6;&#x6001;&#x673A;&#x3002;</li>
<li>&#x770B;&#x770B;Action&#x529F;&#x80FD;&#x80FD;&#x4E0D;&#x80FD;&#x548C;LV&#x7AEF;&#x534F;&#x4F5C;&#x8D77;&#x6765;&#x5B8C;&#x6210;&#x529F;&#x80FD;&#x3002;<blockquote>
<p>&#x672C;&#x9879;&#x76EE;&#x7ACB;&#x8DB3;&#x672A;&#x77E5;&#x5927;&#x73AF;&#x5883;&#x4E0B;&#x7684;&#x5BFC;&#x822A;&#xFF0C;&#x7279;&#x70B9;&#x662F;&#xFF1A;&#x53EA;&#x6709;&#x57FA;&#x4E8E;&#x8282;&#x70B9;&#x7684;&#x62D3;&#x6251;&#x5730;&#x56FE;&#xFF0C;&#x6CA1;&#x6709;&#x4F7F;&#x7528;&#x6FC0;&#x5149;SLAM&#x5DE5;&#x5177;&#x5236;&#x56FE;&#x4E0E;&#x5B9A;&#x4F4D;&#xFF0C;&#x56E0;&#x4E3A;&#x5728;&#x672A;&#x77E5;&#x5927;&#x73AF;&#x5883;&#x4E0B;&#xFF0C;&#x65E0;&#x6CD5;&#x9884;&#x5148;&#x8FDB;&#x884C;&#x5236;&#x56FE;&#xFF0C;&#x5373;&#x4F7F;&#x8FDB;&#x884C;SLAM&#xFF0C;&#x73AF;&#x5883;&#x6570;&#x636E;&#x592A;&#x5927;&#x592A;&#x591A;&#xFF0C;&#x6545;&#x4F7F;&#x7528;&#x5148;&#x9A8C;&#x7684;&#x5168;&#x5C40;&#x5730;&#x56FE;&#xFF0C;&#x673A;&#x5668;&#x4EBA;&#x5728;&#x8FD0;&#x884C;&#x8FC7;&#x7A0B;&#x4E2D;&#x52A8;&#x6001;&#x7EF4;&#x62A4;&#x8BE5;&#x5730;&#x56FE;&#xFF08;&#x5982;&#x57FA;&#x4E8E;&#x89C6;&#x89C9;&#x7684;&#x8BED;&#x4E49;&#x6807;&#x7B7E;&#xFF09;&#xFF0C;&#x5728;&#x7EF4;&#x62A4;&#x7684;&#x8FC7;&#x7A0B;&#x4E2D;&#x8FDB;&#x884C;&#x52A8;&#x6001;&#x7684;&#x8BED;&#x4E49;&#x89C4;&#x5212;&#xFF0C;&#x6FC0;&#x5149;&#x7B49;&#x4F20;&#x611F;&#x5668;&#x53EA;&#x7528;&#x4E8E;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#xFF0C;&#x5728;&#x5C40;&#x90E8;&#x7684;&#x52A8;&#x6001;&#x73AF;&#x5883;&#x4E2D;&#x8FDB;&#x884C;&#x8DEF;&#x52B2;&#x89C4;&#x5212;&#x662F;&#x7528;&#x4E8E;&#x907F;&#x969C;&#x3002;<br>&#x8DEF;&#x5F84;&#x89C4;&#x5212;&#x7684;&#x5B9A;&#x4E49;&#xFF1A;&#x5728;&#x7EA6;&#x675F;&#x6761;&#x4EF6;&#xFF08;&#x80FD;&#x91CF;&#x6D88;&#x8017;&#x6700;&#x5C11;&#xFF0C;&#x8DEF;&#x5F84;&#x6700;&#x77ED;&#xFF0C;&#x8EB2;&#x907F;&#x969C;&#x788D;&#xFF09;&#x4E0B;&#x5BF9;&#x673A;&#x5668;&#x4EBA;&#xFF08;&#x5728;&#x5176;&#x5DE5;&#x4F5C;&#x7A7A;&#x95F4;&#x4E2D;&#xFF09;&#x4ECE;&#x4E00;&#x4E2A;&#x72B6;&#x6001;&#x5230;&#x53E6;&#x4E00;&#x4E2A;&#x72B6;&#x6001;&#x7684;&#x8DEF;&#x5F84;&#x7684;&#x6C42;&#x89E3;&#x3002;<br>SLAM&#xFF1A;&#x540C;&#x65F6;&#x5B9A;&#x4F4D;&#x548C;&#x5236;&#x56FE;&#xFF0C;&#x4E3B;&#x8981;&#x5305;&#x62EC;&#x4E09;&#x4E2A;&#x70B9;&#xFF0C;&#x5B9A;&#x4F4D;&#xFF0C;&#x5236;&#x56FE;&#xFF0C;&#x5BFC;&#x822A;&#xFF08;&#x8DEF;&#x5F84;&#x89C4;&#x5212;&#xFF0C;&#x5305;&#x62EC;&#x5168;&#x5C40;&#x8DEF;&#x5F84;&#x89C4;&#x5212;&#xFF0C;&#x5C40;&#x90E8;&#x8DEF;&#x5F84;&#x89C4;&#x5212;&#xFF0C;&#x8F68;&#x8FF9;&#x751F;&#x6210;&#xFF09;<br>&#x5168;&#x5C40;&#x8DEF;&#x5F84;&#x89C4;&#x5212;</p>
</blockquote>
</li>
</ul>
<h2 id="&#x5B66;&#x4E60;&#x8BB0;&#x5F55;"><a href="#&#x5B66;&#x4E60;&#x8BB0;&#x5F55;" class="headerlink" title="&#x5B66;&#x4E60;&#x8BB0;&#x5F55;"></a>&#x5B66;&#x4E60;&#x8BB0;&#x5F55;</h2><h3 id="&#x57FA;&#x672C;&#x8C03;&#x53C2;&#x6307;&#x5357;"><a href="#&#x57FA;&#x672C;&#x8C03;&#x53C2;&#x6307;&#x5357;" class="headerlink" title="&#x57FA;&#x672C;&#x8C03;&#x53C2;&#x6307;&#x5357;"></a>&#x57FA;&#x672C;&#x8C03;&#x53C2;&#x6307;&#x5357;</h3><h4 id="&#x786E;&#x5B9A;&#x6FC0;&#x5149;&#x6216;&#x8005;&#x58F0;&#x7EB3;&#x7684;&#x5B8C;&#x6574;&#x6027;"><a href="#&#x786E;&#x5B9A;&#x6FC0;&#x5149;&#x6216;&#x8005;&#x58F0;&#x7EB3;&#x7684;&#x5B8C;&#x6574;&#x6027;" class="headerlink" title="&#x786E;&#x5B9A;&#x6FC0;&#x5149;&#x6216;&#x8005;&#x58F0;&#x7EB3;&#x7684;&#x5B8C;&#x6574;&#x6027;"></a>&#x786E;&#x5B9A;&#x6FC0;&#x5149;&#x6216;&#x8005;&#x58F0;&#x7EB3;&#x7684;&#x5B8C;&#x6574;&#x6027;</h4><ul>
<li>&#x4E00;&#x822C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;rviz&#x6765;&#x786E;&#x8BA4;</li>
<li>&#x672C;&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x4F20;&#x611F;&#x5668;&#x7684;&#x6709;&#x6548;&#x6027;&#x7531;&#x8D2D;&#x4E70;&#x7684;&#x5148;&#x950B;&#x673A;&#x5668;&#x4EBA;&#x4FDD;&#x8BC1;</li>
</ul>
<h4 id="&#x91CC;&#x7A0B;&#x8BA1;&#x7684;&#x6709;&#x6548;&#x6027;"><a href="#&#x91CC;&#x7A0B;&#x8BA1;&#x7684;&#x6709;&#x6548;&#x6027;" class="headerlink" title="&#x91CC;&#x7A0B;&#x8BA1;&#x7684;&#x6709;&#x6548;&#x6027;"></a>&#x91CC;&#x7A0B;&#x8BA1;&#x7684;&#x6709;&#x6548;&#x6027;</h4><ul>
<li>&#x4E00;&#x822C;&#x5206;&#x4E3A;&#x65CB;&#x8F6C;&#x548C;&#x5E73;&#x79FB;&#xFF0C;&#x65CB;&#x8F6C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x539F;&#x5730;&#x65CB;&#x8F6C;&#xFF0C;&#x5E73;&#x79FB;&#x53EF;&#x4EE5;&#x6CBF;&#x7740;&#x5899;&#x884C;&#x8D70;&#x770B;&#x770B;&#x4F4D;&#x7F6E;&#x6570;&#x636E;&#x53D8;&#x5316;&#x3002;</li>
<li>&#x672C;&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x91CC;&#x7A0B;&#x8BA1;&#x7531;&#x5148;&#x950B;&#x673A;&#x5668;&#x4EBA;&#x7684;IMU&#x4FDD;&#x8BC1;</li>
</ul>
<h4 id="&#x5B9A;&#x4F4D;&#x7684;&#x6709;&#x6548;&#x6027;"><a href="#&#x5B9A;&#x4F4D;&#x7684;&#x6709;&#x6548;&#x6027;" class="headerlink" title="&#x5B9A;&#x4F4D;&#x7684;&#x6709;&#x6548;&#x6027;"></a>&#x5B9A;&#x4F4D;&#x7684;&#x6709;&#x6548;&#x6027;</h4><ul>
<li>&#x67E5;&#x770B;AMCL&#x662F;&#x5426;&#x8FD0;&#x884C;&#x6709;&#x6548;</li>
<li>&#x672C;&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x4F7F;&#x7528;&#x4EBA;&#x5DE5;&#x5B9A;&#x4F4D;&#x65B9;&#x6CD5;&#xFF0C;&#x5373;&#x673A;&#x5668;&#x4EBA;&#x5728;&#x51FA;&#x751F;&#x70B9;&#x65F6;&#x88AB;&#x6307;&#x5B9A;&#x5F53;&#x524D;&#x5750;&#x6807;&#x3002;</li>
</ul>
<h4 id="&#x4EE3;&#x4EF7;&#x5730;&#x56FE;"><a href="#&#x4EE3;&#x4EF7;&#x5730;&#x56FE;" class="headerlink" title="&#x4EE3;&#x4EF7;&#x5730;&#x56FE;"></a>&#x4EE3;&#x4EF7;&#x5730;&#x56FE;</h4><ul>
<li>&#x673A;&#x5668;&#x4EBA;&#x5BFC;&#x822A;&#x6240;&#x7528;&#x5730;&#x56FE;&#x6709;&#x591A;&#x79CD;&#xFF0C;&#x5305;&#x62EC;&#x62D3;&#x6251;&#x5730;&#x56FE;&#xFF08;&#x8282;&#x70B9;&#x5730;&#x56FE;&#xFF09;&#xFF0C;&#x7CBE;&#x786E;&#x5206;&#x89E3;&#x5730;&#x56FE;&#xFF0C;&#x5360;&#x636E;&#x6805;&#x683C;&#x5730;&#x56FE;&#xFF08;&#x4E0D;&#x7CBE;&#x786E;&#x7684;&#x5206;&#x89E3;&#x5730;&#x56FE;&#xFF09;&#x7B49;&#xFF0C;ROS&#x5BFC;&#x822A;&#x5305;&#x4E2D;&#x91C7;&#x7528;&#x5206;&#x5C42;&#x7684;&#x6805;&#x683C;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#xFF0C;&#x8FD9;&#x662F;David.Lu!!&#x5728;13-14&#x5E74;&#x63A5;&#x624B;NavStack&#x540E;&#x6240;&#x505A;&#x7684;&#x4E00;&#x4E9B;&#x5DE5;&#x4F5C;&#xFF0C;&#x5982;&#x4E00;&#x5C42;sensor_msgs/Range&#x6784;&#x5EFA;&#x7684;&#x6FC0;&#x5149;&#x5730;&#x56FE;range_sensor_layer&#xFF0C;&#x4E00;&#x5C42;&#x7531;&#x76D1;&#x6D4B;&#x5230;&#x7684;&#x4EBA;&#x7684;&#x4F4D;&#x7F6E;&#x6240;&#x6784;&#x5EFA;&#x7684;social_layer&#xFF0C;&#x6BCF;&#x4E00;&#x5C42;&#x63A5;&#x6536;&#x4E00;&#x79CD;&#x7279;&#x5B9A;&#x7684;&#x4F20;&#x611F;&#x7279;&#x5F81;&#x4FE1;&#x606F;&#x6216;&#x6267;&#x884C;&#x4E00;&#x79CD;&#x7279;&#x5B9A;&#x6743;&#x503C;&#x8BA1;&#x7B97;&#x7B97;&#x6CD5;&#xFF0C;&#x901A;&#x8FC7;&#x4E0D;&#x540C;&#x7684;&#x6805;&#x683C;&#x8D4B;&#x503C;&#x7B56;&#x7565;&#xFF0C;&#x5C06;costmap&#x7684;&#x503C;&#x4FEE;&#x6539;&#xFF0C;&#x8FBE;&#x5230;&#x6539;&#x53D8;&#x673A;&#x5668;&#x4EBA;&#x884C;&#x4E3A;&#x7684;&#x76EE;&#x7684;&#x3002;&#x5230;&#x5E95;&#x662F;&#x5982;&#x4F55;&#x6539;&#x53D8;&#x673A;&#x5668;&#x4EBA;&#x884C;&#x4E3A;&#x7684;&#x5462;&#xFF0C;&#x4E3B;&#x8981;&#x662F;&#x5728;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x4E2D;&#x6539;&#x53D8;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x8FD0;&#x52A8;&#x8F68;&#x8FF9;&#x3002;</li>
<li>&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x5206;&#x5C42;&#xFF0C;&#x5177;&#x4F53;&#x505A;&#x6CD5;&#x662F;&#x5C06;&#x4E0D;&#x540C;&#x7C7B;&#x578B;&#x7684;&#x6805;&#x683C;&#x8D4B;&#x503C;&#x8FC7;&#x7A0B;&#x901A;&#x8FC7;pluginlib&#x8FDB;&#x884C;&#x89E3;&#x8026;&#x548C;&#x9694;&#x79BB;, &#x6BCF;&#x4E00;&#x79CD;&#x4E0D;&#x540C;&#x7684;&#x6805;&#x683C;&#x7C7B;&#x578B;&#x62BD;&#x8C61;&#x6210;&#x4E00;&#x5C42;,layer,&#x6BCF;&#x4E00;&#x5C42;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x7684;&#x4F20;&#x611F;&#x5668;&#x6570;&#x636E;&#x8F93;&#x5165;, &#x4E0D;&#x540C;&#x7684;&#x6805;&#x683C;&#x8D4B;&#x503C;&#x7B56;&#x7565;&#xFF0C;&#x5F53;&#x7136;&#x6700;&#x540E;&#x8FD8;&#x662F;&#x5408;&#x6210;&#x4E00;&#x4E2A;&#x5F53;&#x524D;&#x5185;&#x7F6E;&#x7684;&#x5730;&#x56FE;&#x5C42;&#x5305;&#x62EC;&#xFF1A;Static Map Layer; Obstacle Map Layer(&#x4E8C;&#x7EF4;&#x6216;&#x4E09;&#x7EF4;); Inflation Layer</li>
<li>costmap_2d package&#x4E2D;&#x5B9E;&#x73B0;&#x4E86;&#x5E26;&#x6743;&#x6805;&#x683C;&#x5730;&#x56FE; &#x7684;&#x73AF;&#x5883;&#x8868;&#x793A;&#x65B9;&#x5F0F;. &#x4F5C;&#x4E3A;&#x5BFC;&#x822A;&#x67B6;&#x6784;&#x4E2D;&#x73AF;&#x5883;&#x8868;&#x793A;&#x6A21;&#x5757;,&#x627F;&#x62C5;&#x4E86;&#x4E0E;&#x4F20;&#x611F;&#x5668;&#x6570;&#x636E;&#x6D41;&#x4EA4;&#x4E92;,&#x66B4;&#x9732;&#x63A5;&#x53E3;&#x7ED9;planner&#x8FDB;&#x884C;&#x89C4;&#x5212;</li>
<li>Costmap_2d&#x4E3B;&#x8981;&#x6D41;&#x7A0B;&#x4E3A;&#x8F93;&#x5165;&#x6FC0;&#x5149;&#x96F7;&#x8FBE;laserscan &#x6216;&#x8005;&#x70B9;&#x4E91; pointcloud &#x6570;&#x636E;(&#x5F53;&#x7136;&#x53EF;&#x4EE5;&#x81EA;&#x5DF1;&#x5B9A;&#x4E49;&#x522B;&#x7684;), &#x4ECE;tf tree&#x4E0A;&#x83B7;&#x53D6;&#x5B9A;&#x4F4D;&#x6570;&#x636E;, &#x8FDB;&#x884C;<strong>&#x5DF2;&#x77E5;&#x5B9A;&#x4F4D;&#x6570;&#x636E;</strong>&#x7684;&#x5EFA;&#x56FE;&#x5904;&#x7406;. &#x56E0;&#x4E3A;&#x662F;&#x6839;&#x636E;&#x5DF2;&#x77E5;&#x5B9A;&#x4F4D;&#x6570;&#x636E;&#x7684;&#x5EFA;&#x56FE;&#x7B97;&#x6CD5;,&#x5047;&#x8BBE;&#x5B9A;&#x4F4D;&#x6570;&#x636E;&#x7CBE;&#x786E;. &#x6240;&#x4EE5;&#x5982;&#x4F55;&#x9009;&#x53D6;&#x5168;&#x5C40;&#x5B9A;&#x4F4D;&#x5750;&#x6807;&#x7CFB;,&#x5F88;&#x5927;&#x7A0B;&#x5EA6;&#x4E0A;&#x51B3;&#x5B9A;&#x4E86;&#x5EFA;&#x56FE;&#x8D28;&#x91CF;, &#x5F88;&#x591A;&#x95EE;&#x9898;&#x4E5F;&#x6E90;&#x4E8E;&#x6B64;.</li>
<li>Costmap &#x9664;&#x53BB;&#x53C2;&#x6570;&#x8BBE;&#x7F6E;&#x548C;&#x591A;&#x7EBF;&#x7A0B;&#x8C03;&#x5EA6;, &#x5DF2;&#x77E5;&#x5B9A;&#x4F4D;&#x6570;&#x636E;&#x7684;&#x5EFA;&#x56FE; &#x6838;&#x5FC3;&#x6B65;&#x9AA4;&#x662F;raytrace&#x8FC7;&#x7A0B;.&#x7B97;&#x6CD5;&#x8FC7;&#x7A0B;&#x5982;&#x4E0B;:</li>
</ul>
<ol>
<li>&#x5F97;&#x5230;&#x5F53;&#x524D;&#x65F6;&#x523B;&#x7684;&#x673A;&#x5668;&#x4EBA;&#x5F53;&#x524D;&#x7684;&#x5168;&#x5C40;&#x4F4D;&#x7F6E;pos, &#x4F20;&#x611F;&#x5668;&#x76F8;&#x5BF9;&#x673A;&#x5668;&#x4EBA;&#x4E2D;&#x5FC3;&#x5750;&#x6807;&#x7CFB;&#x504F;&#x79FB;offset, &#x5C06;&#x4E0D;&#x540C;&#x7684;&#x4F20;&#x611F;&#x5668;&#x6570;&#x636E;&#x7EDF;&#x4E00;&#x5904;&#x7406;&#x6210;&#x70B9;&#x4E91;, &#x5C06;&#x4F20;&#x611F;&#x5668;&#x4E2D;&#x5FC3;&#x4EE5;&#x53CA;&#x70B9;&#x4E91;&#x6570;&#x636E;&#x8F6C;&#x6362;&#x5230;&#x5168;&#x5C40;&#x5750;&#x6807;&#x7CFB;.</li>
<li>&#x6839;&#x636E;&#x4F20;&#x611F;&#x5668;&#x6A21;&#x578B;,&#x4ECE;&#x4F20;&#x611F;&#x5668;&#x4E2D;&#x5FC3;&#x5230;&#x70B9;&#x4E91;&#x7684;&#x8FDE;&#x7EBF;, &#x8FD9;&#x4E00;&#x90E8;&#x5206;&#x7A7A;&#x95F4;&#x4E3A;&#x6CA1;&#x6709;&#x969C;&#x788D;&#x7269;&#x7684;&#x5B89;&#x5168;&#x7A7A;&#x95F4;free, &#x70B9;&#x4E91;&#x7684;&#x4F4D;&#x7F6E;&#x4E3A;&#x969C;&#x788D;&#x7269;&#x6240;&#x5728;&#x4F4D;&#x7F6E;occupied, &#x6839;&#x636E;&#x6211;&#x4EEC;&#x5BF9;&#x4E8E;costmap&#x4E2D;, &#x6805;&#x683C;cost&#x7684;&#x5B9A;&#x4E49;, &#x5BF9;&#x8FDE;&#x7EBF;&#x4E0A;&#x8D4B;&#x6743;&#x503C;. &#x4E00;&#x822C;&#x4F7F;&#x7528;bresenham&#x7B97;&#x6CD5;&#x5C06;&#x76F4;&#x7EBF;&#x79BB;&#x6563;&#x5316;&#x5230;&#x6805;&#x683C;&#x4E2D;.</li>
<li>&#x786E;&#x5B9A;&#x4E86;free &#x548C; occupied&#x7684;&#x6805;&#x683C;, &#x6839;&#x636E;costmap &#x4E2D;&#x5BF9;&#x6805;&#x683C;&#x6743;&#x503C;&#x7684;&#x5206;&#x7C7B;,&#x5C06;unkown &#x548C;inflation &#x7B49;&#x90E8;&#x5206;&#x7684;&#x6743;&#x503C;&#x586B;&#x4E0A;, inflation &#x4F7F;&#x7528;&#x5E7F;&#x5EA6;&#x4F18;&#x5148;&#x7684;&#x65B9;&#x5F0F;&#x8FDB;&#x884C;&#x6269;&#x5C55;&#x6805;&#x683C;, &#x5C06;occupied &#x7684;&#x6805;&#x683C;&#x5165;&#x961F;, &#x7136;&#x540E;&#x5C42;&#x5C42;&#x6269;&#x5C55;,&#x5F97;&#x5230;&#x81A8;&#x80C0;&#x51FA;&#x53BB;&#x7684;&#x6805;&#x683C;,&#x5E76;&#x8D4B;&#x503C;.</li>
</ol>
<h4 id="&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;"><a href="#&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;" class="headerlink" title="&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;"></a>&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;</h4><ul>
<li>&#x9996;&#x5148;&#x9700;&#x8981;&#x9009;&#x62E9;&#x662F;dwa&#x8FD8;&#x662F;base_local_planner</li>
<li>&#x6700;&#x91CD;&#x8981;&#x7684;&#x53C2;&#x6570;&#x662F;&#x52A0;&#x901F;&#x5EA6;&#x7684;&#x4E0A;&#x9650;&#x503C;&#x9700;&#x8981;&#x660E;&#x786E;&#x548C;&#x4E00;&#x81F4;&#xFF0C;&#x56E0;&#x4E3A;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x5C31;&#x662F;&#x57FA;&#x4E8E;&#x8FD9;&#x4E9B;&#x503C;&#x505A;&#x6A21;&#x62DF;&#xFF0C;</li>
</ul>
<h3 id="&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x539F;&#x7406;"><a href="#&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x539F;&#x7406;" class="headerlink" title="&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x539F;&#x7406;"></a>&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x539F;&#x7406;</h3><1 由移动底盘的运动学模型得到速度的采样空间.="" 在给定的速度加速度限制下,="" 在给定时间间隔下,="" 没有碰撞的速度为admission="" velocity.="" (这些给定的限制都是我们需要调试的参数)="" <2="" 在采样空间中,="" 我们计算每个样本的目标函数:="" nf="&#x3B1;" ⋅vel="" +="" β="" ⋅nf="" +γ="" ⋅δnf="" +δ="" ⋅="" goal="" vel="" 当前速度值="" 到当前目标点的相关的cost="" 值="" δnf="" 与全局路径的贴合程度的cost="" 到全局目标点的距离值.="" 还有一些cost可以自己定义,="" navigation实现中还有对最大最小障碍物距离的cost="" 与倾向于向前走的cost.="" 然后α,β,γ,δ="" 都是权重参数,="" 调节这些参数可以极大影响机器人避障行为="" <3="" 得到期望速度,="" 插值成轨迹输出给move_base="" ###="" 各模块参数="" ####="" 代价地图="" *="" coordinate="" frame="" and="" tf="" parameters="" <figure="" class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/global_frame (string, default: &quot;/map&quot;)</span><br><span class="line">The global frame for the costmap to operate in.&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x5728;&#x54EA;&#x4E00;&#x4E2A;&#x5750;&#x6807;&#x7CFB;&#x7684;&#x57FA;&#x7840;&#x4E0A;&#x5236;&#x4F5C;</span><br><span class="line">~&lt;name&gt;/robot_base_frame (string, default: &quot;base_link&quot;)</span><br><span class="line">The name of the frame for the base link of the robot.&#x4F20;&#x611F;&#x5668;&#x6570;&#x636E;&#x8F6C;&#x6362;&#x4E3A;&#x5730;&#x56FE;&#x4E0A;&#x6570;&#x636E;&#x7684;&#x6865;&#x6881;</span><br><span class="line">~&lt;name&gt;/transform_tolerance (double, default: 0.2)</span><br><span class="line">Specifies the delay in transform (tf) data that is tolerable in seconds. This parameter serves as a safeguard to losing a link in the tf tree while still allowing an amount of latency the user is comfortable with to exist in the system. For example, a transform being 0.2 seconds out-of-date may be tolerable, but a transform being 8 seconds out of date is not. If the tf transform between the coordinate frames specified by the global_frame and robot_base_frame parameters is transform_tolerance seconds older than ros::Time::now(), then the navigation stack will stop the robot.&#x5EF6;&#x8FDF;&#x65F6;&#x95F4;&#xFF0C;&#x548C;&#x5B9E;&#x65F6;&#x6027;&#x8981;&#x6C42;&#x6709;&#x5173;&#xFF0C;&#x8FD9;&#x4E2A;&#x65F6;&#x95F4;&#x53C2;&#x6570;&#x5B9E;&#x9645;&#x4E0A;&#x662F;&#x5141;&#x8BB8;TF&#x4F20;&#x8F93;&#x5EF6;&#x8FDF;&#xFF0C;&#x53C2;&#x6570;&#x8BBE;&#x7F6E;&#x8FC7;&#x5927;&#x4F1A;&#x5F71;&#x54CD;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x884C;&#x4E3A;&#x3002;</span><br></pre></td></tr></table>

<ul>
<li><p>Rate parameters</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/update_frequency (double, default: 5.0)</span><br><span class="line">The frequency in Hz for the map to be updated.&#x56FE;&#x7684;&#x66F4;&#x65B0;&#x9891;&#x7387;&#xFF0C;&#x9700;&#x8981;&#x914D;&#x5408;&#x4F20;&#x611F;&#x5668;&#x6570;&#x636E;&#x7684;&#x53D1;&#x5E03;&#x9891;&#x7387;&#x3002;&#x8003;&#x8651;&#x673A;&#x5668;&#x4EBA;&#x5904;&#x7406;&#x5668;&#x901F;&#x5EA6;&#x3002;</span><br><span class="line">~&lt;name&gt;/publish_frequency (double, default: 0.0)</span><br><span class="line">The frequency in Hz for the map to be publish display information.&#x53D1;&#x5E03;&#x9891;&#x7387;&#xFF0C;&#x4E3B;&#x8981;&#x88AB;RViz&#x63A5;&#x6536;&#xFF0C;&#x9700;&#x8981;&#x8003;&#x8651;&#x5730;&#x56FE;&#x5927;&#x5C0F;&#x6765;&#x8BBE;&#x7F6E;&#x53D1;&#x5E03;&#x9891;&#x7387;&#x3002;</span><br></pre></td></tr></table></figure>
</li>
<li><p>Map management parameters</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/rolling_window (bool, default: false)</span><br><span class="line">Whether or not to use a rolling window version of the costmap. If the static_map parameter is set to true, this parameter must be set to false.</span><br><span class="line">~&lt;name&gt;/always_send_full_costmap (bool, default: false)</span><br><span class="line">If true the full costmap is published to &quot;~&lt;name&gt;/grid&quot; every update. If false only the part of the costmap that has changed is published on the &quot;~&lt;name&gt;/grid_updates&quot; topic.</span><br></pre></td></tr></table></figure>
</li>
<li><p>The following parameters can be overwritten by some layers, namely the static map layer.</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/width (int, default: 10)</span><br><span class="line">The width of the map in meters.&#x5730;&#x56FE;&#x7684;&#x51E0;&#x4F55;&#x53C2;&#x6570;&#xFF0C;&#x4E5F;&#x4F1A;&#x5F71;&#x54CD;&#x8DEF;&#x5F84;&#x89C4;&#x5212;&#x7CBE;&#x5EA6;&#x3002;</span><br><span class="line">~&lt;name&gt;/height (int, default: 10)</span><br><span class="line">The height of the map in meters.</span><br><span class="line">~&lt;name&gt;/resolution (double, default: 0.05)</span><br><span class="line">The resolution of the map in meters/cell.</span><br><span class="line">~&lt;name&gt;/origin_x (double, default: 0.0)</span><br><span class="line">The x origin of the map in the global frame in meters.</span><br><span class="line">~&lt;name&gt;/origin_y (double, default: 0.0)</span><br><span class="line">The y origin of the map in the global frame in meters.</span><br></pre></td></tr></table></figure>
</li>
</ul>
<h4 id="&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53C2;&#x6570;"><a href="#&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53C2;&#x6570;" class="headerlink" title="&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53C2;&#x6570;"></a>&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53C2;&#x6570;</h4><p>&#x969C;&#x788D;&#x5730;&#x56FE;&#x57FA;&#x4E8E;&#x6FC0;&#x5149;&#x70B9;&#x4E91;&#x6570;&#x636E;&#xFF0C;&#x7ED9;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x6807;&#x4E0A;&#x969C;&#x788D;&#x7269;&#x4FE1;&#x606F;&#x3002;</p>
<h5 id="sensor-management-parameters"><a href="#Sensor-management-parameters" class="headerlink" title="Sensor management parameters"></a>Sensor management parameters</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/observation_sources (string, default: &quot;&quot;)</span><br><span class="line">A list of observation source names separated by spaces. This defines each of the &lt;source_name&gt; namespaces defined below.</span><br><span class="line">Each source_name in observation_sources defines a namespace in which parameters can be set:</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/topic (string, default: source_name)</span><br><span class="line">The topic on which sensor data comes in for this source. Defaults to the name of the source.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/sensor_frame (string, default: &quot;&quot;)</span><br><span class="line">The frame of the origin of the sensor. Leave empty to attempt to read the frame from sensor data. The frame can be read from both sensor_msgs/LaserScan, sensor_msgs/PointCloud, and sensor_msgs/PointCloud2 messages.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/observation_persistence (double, default: 0.0)</span><br><span class="line">How long to keep each sensor reading in seconds. A value of 0.0 will only keep the most recent reading.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/expected_update_rate (double, default: 0.0)</span><br><span class="line">How often to expect a reading from a sensor in seconds. A value of 0.0 will allow infinite time between readings. This parameter is used as a failsafe to keep the navigation stack from commanding the robot when a sensor has failed. It should be set to a value that is slightly more permissive than the actual rate of the sensor. For example, if we expect a scan from a laser every 0.05 seconds we might set this parameter to be 0.1 seconds to give a generous buffer and account for some amount of system latency.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/data_type (string, default: &quot;PointCloud&quot;)</span><br><span class="line">The data type associated with the topic, right now only &quot;PointCloud&quot;, &quot;PointCloud2&quot;, and &quot;LaserScan&quot; are supported.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/clearing (bool, default: false)</span><br><span class="line">Whether or not this observation should be used to clear out freespace.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/marking (bool, default: true)</span><br><span class="line">Whether or not this observation should be used to mark obstacles.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/max_obstacle_height (double, default: 2.0)</span><br><span class="line">The maximum height in meters of a sensor reading considered valid. This is usually set to be slightly higher than the height of the robot. Setting this parameter to a value greater than the global max_obstacle_height parameter has no effect. Setting this parameter to a value less than the global max_obstacle_height will filter out points from this sensor above that height.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/min_obstacle_height (double, default: 0.0)</span><br><span class="line">The minimum height in meters of a sensor reading considered valid. This is usually set to be at ground height, but can be set higher or lower based on the noise model of your sensor.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/obstacle_range (double, default: 2.5)</span><br><span class="line">The maximum range in meters at which to insert obstacles into the costmap using sensor data.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/raytrace_range (double, default: 3.0)</span><br><span class="line">The maximum range in meters at which to raytrace out obstacles from the map using sensor data.</span><br><span class="line">~&lt;name&gt;/&lt;source_name&gt;/inf_is_valid (bool, default: false)</span><br><span class="line">Allows for Inf values in &quot;LaserScan&quot; observation messages. The Inf values are converted to the laser maximun range.</span><br></pre></td></tr></table></figure>
<h5 id="global-filtering-parameters"><a href="#Global-Filtering-Parameters" class="headerlink" title="Global Filtering Parameters"></a>Global Filtering Parameters</h5><p>Apply to all sensors.<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/max_obstacle_height (double, default: 2.0)&#x969C;&#x788D;&#x9AD8;&#x5EA6;</span><br><span class="line">The maximum height of any obstacle to be inserted into the costmap in meters. This parameter should be set to be slightly higher than the height of your robot.</span><br><span class="line">~&lt;name&gt;/obstacle_range (double, default: 2.5)&#x969C;&#x788D;&#x8303;&#x56F4;&#xFF1A;&#x591A;&#x5C11;&#x7C73;&#x8303;&#x56F4;&#x5185;&#x7684;&#x969C;&#x788D;&#x7269;&#x88AB;&#x6807;&#x8BC6;&#x51FA;&#x6765;</span><br><span class="line">The default maximum distance from the robot at which an obstacle will be inserted into the cost map in meters. This can be over-ridden on a per-sensor basis.</span><br><span class="line">~&lt;name&gt;/raytrace_range (double, default: 3.0)&#x4E0D;&#x77E5;&#x9053;&#x554A;&#xFF0C;&#x53EA;&#x77E5;&#x9053;raytrace&#x662F;&#x4E00;&#x79CD;&#x4EE3;&#x4EF7;&#x503C;&#x4F20;&#x64AD;&#x7684;&#x65B9;&#x6CD5;&#x3002;</span><br><span class="line">The default range in meters at which to raytrace out obstacles from the map using sensor data. This can be over-ridden on a per-sensor basis.</span><br></pre></td></tr></table></figure></p>
<h5 id="obstaclecostmapplugin"><a href="#ObstacleCostmapPlugin" class="headerlink" title="ObstacleCostmapPlugin"></a>ObstacleCostmapPlugin</h5><p>This parameter is only used by the ObstacleCostmapPlugin<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/track_unknown_space (bool, default: false)</span><br><span class="line">Specifies whether or not to track what space in the costmap is unknown, meaning that no observation about a cell has been seen from any sensor source.</span><br></pre></td></tr></table></figure></p>
<h5 id="voxelcostmapplugin"><a href="#VoxelCostmapPlugin" class="headerlink" title="VoxelCostmapPlugin"></a>VoxelCostmapPlugin</h5><p>The following parameters are only used by the VoxelCostmapPlugin<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/origin_z (double, default: 0.0)</span><br><span class="line">The z origin of the map in meters.</span><br><span class="line">~&lt;name&gt;/z_resolution (double, default: 0.2)</span><br><span class="line">The z resolution of the map in meters/cell.</span><br><span class="line">~&lt;name&gt;/z_voxels (int, default: 10)</span><br><span class="line">The number of voxels to in each vertical column, the height of the grid is z_resolution * z_voxels.</span><br><span class="line">~&lt;name&gt;/unknown_threshold (int, default: ~&lt;name&gt;/z_voxels)</span><br><span class="line">The number of unknown cells allowed in a column considered to be &quot;known&quot;</span><br><span class="line">~&lt;name&gt;/mark_threshold (int, default: 0)</span><br><span class="line">The maximum number of marked cells allowed in a column considered to be &quot;free&quot;.</span><br><span class="line">~&lt;name&gt;/publish_voxel_map (bool, default: false)</span><br><span class="line">Whether or not to publish the underlying voxel grid for visualization purposes.</span><br></pre></td></tr></table></figure></p>
<h5 id="&#x81A8;&#x80C0;&#x5730;&#x56FE;"><a href="#&#x81A8;&#x80C0;&#x5730;&#x56FE;" class="headerlink" title="&#x81A8;&#x80C0;&#x5730;&#x56FE;"></a>&#x81A8;&#x80C0;&#x5730;&#x56FE;</h5><p>&#x81A8;&#x80C0;&#x5730;&#x56FE;&#x6307;&#x7684;&#x662F;&#x4EE3;&#x4EF7;&#x503C;&#x4ECE;&#x969C;&#x788D;&#x7269;&#x5904;&#x5411;&#x5916;&#x4FA7;&#x8FDB;&#x884C;&#x7684;&#x4F20;&#x64AD;&#xFF0C;&#x4F20;&#x64AD;&#x540E;&#x4EE3;&#x4EF7;&#x503C;&#x6709;5&#x4E2A;&#x6807;&#x8BC6;&#x503C;&#xFF1A;254&#xFF0C;253&#xFF0C;128&#xFF0C;1&#xFF0C;0&#x3002;&#x4EE5;127&#x4E3A;&#x754C;&#xFF0C;&#x4EE5;&#x4E0A;&#x4E3A;&#x53EF;&#x80FD;&#x6709;&#x969C;&#x788D;&#x7269;&#xFF0C;&#x4EE5;&#x4E0B;&#x4E3A;&#x5E94;&#x8BE5;&#x6CA1;&#x6709;&#x969C;&#x788D;&#x7269;&#x3002;<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/inflation_radius (double, default: 0.55) </span><br><span class="line">The radius in meters to which the map inflates obstacle cost values.</span><br><span class="line">~&lt;name&gt;/cost_scaling_factor (double, default: 10.0)</span><br><span class="line">A scaling factor to apply to cost values during inflation. The cost function is computed as follows for all cells in the costmap further than the inscribed radius distance and closer than the inflation radius distance away from an actual obstacle: exp(-1.0 * cost_scaling_factor * (distance_from_obstacle - inscribed_radius)) * (costmap_2d::INSCRIBED_INFLATED_OBSTACLE - 1), where costmap_2d::INSCRIBED_INFLATED_OBSTACLE is currently 254. NOTE: since the cost_scaling_factor is multiplied by a negative in the formula, increasing the factor will decrease the resulting cost values.</span><br></pre></td></tr></table></figure></p>
<h3 id="move_base&#x53C2;&#x6570;"><a href="#move-base&#x53C2;&#x6570;" class="headerlink" title="move_base&#x53C2;&#x6570;"></a>move_base&#x53C2;&#x6570;</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">~base_global_planner (string, default: &quot;navfn/NavfnROS&quot; For 1.1+ series)</span><br><span class="line">The name of the plugin for the global planner to use with move_base, see pluginlib documentation for more details on plugins. This plugin must adhere to the nav_core::BaseGlobalPlanner interface specified in the nav_core package. (1.0 series default: &quot;NavfnROS&quot;)</span><br><span class="line">~base_local_planner (string, default: &quot;base_local_planner/TrajectoryPlannerROS&quot; For 1.1+ series)</span><br><span class="line">The name of the plugin for the local planner to use with move_base see pluginlib documentation for more details on plugins. This plugin must adhere to the nav_core::BaseLocalPlanner interface specified in the nav_core package. (1.0 series default: &quot;TrajectoryPlannerROS&quot;)</span><br><span class="line">~recovery_behaviors (list, default: [{name: conservative_reset, type: clear_costmap_recovery/ClearCostmapRecovery}, {name: rotate_recovery, type: rotate_recovery/RotateRecovery}, {name: aggressive_reset, type: clear_costmap_recovery/ClearCostmapRecovery}] For 1.1+ series) </span><br><span class="line">~controller_frequency (double, default: 20.0)</span><br><span class="line">The rate in Hz at which to run the control loop and send velocity commands to the base.</span><br><span class="line">~planner_patience (double, default: 5.0)</span><br><span class="line">How long the planner will wait in seconds in an attempt to find a valid plan before space-clearing operations are performed.</span><br><span class="line">~controller_patience (double, default: 15.0)</span><br><span class="line">How long the controller will wait in seconds without receiving a valid control before space-clearing operations are performed.</span><br></pre></td></tr></table></figure>
<h3 id="move_base&#x72B6;&#x6001;&#x673A;&#x5B8F;&#x89C2;&#x884C;&#x4E3A;&#x63A7;&#x5236;"><a href="#move-base&#x72B6;&#x6001;&#x673A;&#x5B8F;&#x89C2;&#x884C;&#x4E3A;&#x63A7;&#x5236;" class="headerlink" title="move_base&#x72B6;&#x6001;&#x673A;&#x5B8F;&#x89C2;&#x884C;&#x4E3A;&#x63A7;&#x5236;"></a>move_base&#x72B6;&#x6001;&#x673A;&#x5B8F;&#x89C2;&#x884C;&#x4E3A;&#x63A7;&#x5236;</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">~conservative_reset_dist (double, default: 3.0)</span><br><span class="line">The distance away from the robot in meters at which obstacles will be cleared from the costmap when attempting to clear space in the map. Note, this parameter is only used when the default recovery behaviors are used for move_base.</span><br><span class="line">~recovery_behavior_enabled (bool, default: true)</span><br><span class="line">Whether or not to enable the move_base recovery behaviors to attempt to clear out space.&#x5728;&#x672C;&#x9879;&#x76EE;&#x4E2D;&#x5E94;&#x8BE5;&#x4E3A;&#x5426;</span><br><span class="line">~clearing_rotation_allowed (bool, default: true)</span><br><span class="line">Determines whether or not the robot will attempt an in-place rotation when attempting to clear out space. Note: This parameter is only used when the default recovery behaviors are in use, meaning the user has not set the recovery_behaviors parameter to anything custom.&#x5728;&#x672C;&#x9879;&#x76EE;&#x4E2D;&#x5E94;&#x8BE5;&#x4E3A;&#x5426;</span><br><span class="line">~shutdown_costmaps (bool, default: false)</span><br><span class="line">Determines whether or not to shutdown the costmaps of the node when move_base is in an inactive state</span><br><span class="line">~oscillation_timeout (double, default: 0.0)</span><br><span class="line">How long in seconds to allow for oscillation before executing recovery behaviors. A value of 0.0 corresponds to an infinite timeout. New in navigation 1.3.1</span><br><span class="line">~oscillation_distance (double, default: 0.5)</span><br><span class="line">How far in meters the robot must move to be considered not to be oscillating. Moving this far resets the timer counting up to the ~oscillation_timeout New in navigation 1.3.1</span><br><span class="line">~planner_frequency (double, default: 0.0)</span><br><span class="line">The rate in Hz at which to run the global planning loop. If the frequency is set to 0.0, the global planner will only run when a new goal is received or the local planner reports that its path is blocked. New in navigation 1.6.0</span><br></pre></td></tr></table></figure>
<h3 id="&#x6062;&#x590D;&#x884C;&#x4E3A;&#x72B6;&#x6001;&#x5B9A;&#x5236;"><a href="#&#x6062;&#x590D;&#x884C;&#x4E3A;&#x72B6;&#x6001;&#x5B9A;&#x5236;" class="headerlink" title="&#x6062;&#x590D;&#x884C;&#x4E3A;&#x72B6;&#x6001;&#x5B9A;&#x5236;"></a>&#x6062;&#x590D;&#x884C;&#x4E3A;&#x72B6;&#x6001;&#x5B9A;&#x5236;</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">~&lt;name&gt;/sim_granularity (double, default: 0.017)</span><br><span class="line">The distance in radians between checks for obstacles when checking if an in-place rotation is safe. Defaults to 1 degree.</span><br><span class="line">~&lt;name&gt;/frequency (double, default: 20.0)</span><br><span class="line">The frequency in HZ at which to send velocity commands to the mobile base.</span><br></pre></td></tr></table></figure>
<h2 id="&#x53EF;&#x4EE5;&#x5B9A;&#x5236;&#x7684;&#x5730;&#x65B9;"><a href="#&#x53EF;&#x4EE5;&#x5B9A;&#x5236;&#x7684;&#x5730;&#x65B9;" class="headerlink" title="&#x53EF;&#x4EE5;&#x5B9A;&#x5236;&#x7684;&#x5730;&#x65B9;"></a>&#x53EF;&#x4EE5;&#x5B9A;&#x5236;&#x7684;&#x5730;&#x65B9;</h2><ul>
<li>&#x8FD9;&#x91CC;&#x8BB0;&#x5F55;&#x9664;&#x4E86;&#x53C2;&#x6570;&#x8C03;&#x6574;&#x4E4B;&#x5916;&#xFF0C;&#x8FD8;&#x53EF;&#x4EE5;&#x8FDB;&#x884C;&#x7A0B;&#x5E8F;&#x5B9A;&#x5236;&#x7684;&#x6A21;&#x5757;&#x3002;</li>
<li>&#x673A;&#x5668;&#x4EBA;64X50X65cm</li>
<li>&#x5168;&#x5C40;&#x89C4;&#x5212;&#x5668;&#xFF08;&#x91C7;&#x7528;&#x4E0D;&#x540C;&#x7684;&#x89C4;&#x5212;&#x7B56;&#x7565;&#xFF0C;&#x79BB;&#x6563;&#x7B56;&#x7565;&#x90FD;&#x53EF;&#x4EE5;&#xFF09;</li>
<li>&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;</li>
<li>&#x6062;&#x590D;&#x884C;&#x4E3A;</li>
<li>move_base&#x72B6;&#x6001;&#x673A;</li>
<li>&#x52A8;&#x4F5C;&#x670D;&#x52A1;&#x7AEF;&#x7F16;&#x7A0B;</li>
<li>&#x5C42;&#x6B21;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#xFF08;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#xFF0C;&#x6539;&#x53D8;&#x673A;&#x5668;&#x4EBA;&#x884C;&#x4E3A;&#xFF0C;&#x6539;&#x52A8;&#x6F5C;&#x529B;&#x5927;&#xFF09;</li>
<li>&#x5730;&#x56FE;&#x7EF4;&#x62A4;<h3 id="&#x53C2;&#x6570;&#x8C03;&#x6574;&#x8981;&#x70B9;"><a href="#&#x53C2;&#x6570;&#x8C03;&#x6574;&#x8981;&#x70B9;" class="headerlink" title="&#x53C2;&#x6570;&#x8C03;&#x6574;&#x8981;&#x70B9;"></a>&#x53C2;&#x6570;&#x8C03;&#x6574;&#x8981;&#x70B9;</h3></li>
<li>&#x5168;&#x5C40;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x6240;&#x5728;&#x5750;&#x6807;&#x7CFB;&#x4E0E;&#x5C40;&#x90E8;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x4E00;&#x6837;&#x90FD;&#x5728;odometry&#xFF0C;&#x5168;&#x5C40;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x5C3A;&#x5BF8;&#x5EFA;&#x8BAE;&#x6BD4;&#x5C40;&#x90E8;&#x5730;&#x56FE;&#x5927;&#x3002;</li>
<li>&#x67E5;&#x770B;&#x8BA1;&#x7B97;&#x673A;&#x6027;&#x80FD;&#x7684;&#x4E00;&#x4E2A;&#x6307;&#x6807;&#x662F;CPU&#x5229;&#x7528;&#x7387;</li>
<li>&#x5168;&#x5C40;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x7684;&#x81A8;&#x80C0;&#x534A;&#x5F84;&#x5E94;&#x8BE5;&#x6BD4;&#x5C40;&#x90E8;&#x7684;&#x5927;&#x4E00;&#x70B9;&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x5728;&#x5168;&#x5C40;&#x89C4;&#x5212;&#x65F6;&#x89C4;&#x5212;&#x51FA;&#x8F83;&#x5B89;&#x5168;&#x7684;&#x8DEF;&#x5F84;&#xFF0C;&#x800C;&#x5728;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x65F6;&#x7ED9;&#x4E0E;&#x8F83;&#x5927;&#x7684;&#x81EA;&#x7531;&#x3002;&#xFF08;&#x4E2A;&#x4EBA;&#x7406;&#x89E3;&#xFF09;</li>
<li>&#x5730;&#x56FE;&#x5206;&#x8FA8;&#x7387;&#x53EF;&#x4E0D;&#x53EF;&#x4EE5;&#x8BBE;&#x5C0F;&#x4E00;&#x70B9;&#xFF0C;&#x66F4;&#x52A0;&#x7CBE;&#x786E;&#x3002;</li>
<li>&#x81A8;&#x80C0;&#x5730;&#x56FE;&#x534A;&#x5F84;&#x4E00;&#x822C;&#x4E3A;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x534A;&#x5F84;&#xFF0C;&#x5982;&#x679C;&#x60F3;&#x8981;&#x673A;&#x5668;&#x4EBA;&#x66F4;&#x52A0;&#x5192;&#x9669;&#xFF0C;&#x5E94;&#x8BE5;&#x589E;&#x52A0;cose_scaling_factor&#x503C;&#xFF0C;&#x6BD4;&#x5982;&#x5230;100</li>
<li>&#x5C06;move_base&#x7684;&#x6062;&#x590D;&#x884C;&#x4E3A;&#x53BB;&#x6389;</li>
<li>&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x7684;&#x5206;&#x8FA8;&#x7387;&#x4E0D;&#x53EF;&#x8BBE;&#x7F6E;&#x592A;&#x5C0F;&#xFF0C;&#x4E0D;&#x7136;&#x5168;&#x5C40;&#x8DEF;&#x5F84;&#x53EF;&#x80FD;&#x4F1A;&#x4E0D;&#x5E73;&#x6ED1;&#x3002;&#x4F46;&#x662F;&#x5E73;&#x6ED1;&#x7684;&#x8F68;&#x8FF9;&#x4E0D;&#x662F;&#x7531;&#x5168;&#x5C40;&#x8DEF;&#x5F84;&#x89C4;&#x5212;&#x5668;&#x6765;&#x51B3;&#x5B9A;&#x7684;&#xFF0C;&#x800C;&#x662F;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x6765;&#x51B3;&#x5B9A;&#x7684;&#xFF0C;&#x6240;&#x4EE5;&#x5C40;&#x90E8;&#x5206;&#x8FA8;&#x7387;&#x53EF;&#x4EE5;&#x8BBE;&#x7F6E;&#x5F97;&#x9AD8;&#xFF0C;&#x4F46;&#x662F;&#x4F1A;&#x589E;&#x52A0;&#x8BA1;&#x7B97;&#x673A;&#x538B;&#x529B;&#xFF0C;&#x5730;&#x56FE;&#x7684;&#x751F;&#x6210;&#x4F1A;&#x53D8;&#x6162;&#xFF0C;&#x5BF9;&#x4E8E;&#x771F;&#x673A;&#x5E94;&#x8BE5;&#x4E0D;&#x662F;&#x95EE;&#x9898;&#x3002;</li>
<li>&#x4E3A;&#x4E86;&#x4F7F;&#x673A;&#x5668;&#x4EBA;&#x8FD0;&#x52A8;&#x66F4;&#x7CBE;&#x786E;&#xFF0C;&#x5C1D;&#x8BD5;&#x4F7F;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x7684;&#x4F4D;&#x7F6E;&#x516C;&#x5DEE;&#x53C2;&#x6570;&#x8C03;&#x6574;&#x81F3;+-0.05&#x3002;<h3 id="&#x5B9E;&#x9645;&#x8C03;&#x53C2;&#x7B14;&#x8BB0;"><a href="#&#x5B9E;&#x9645;&#x8C03;&#x53C2;&#x7B14;&#x8BB0;" class="headerlink" title="&#x5B9E;&#x9645;&#x8C03;&#x53C2;&#x7B14;&#x8BB0;"></a>&#x5B9E;&#x9645;&#x8C03;&#x53C2;&#x7B14;&#x8BB0;</h3></li>
<li>&#x5168;&#x5C40;&#x4EE3;&#x4EF7;&#x5730;&#x56FE;&#x7684;&#x81A8;&#x80C0;&#x8DDD;&#x79BB;&#x8FC7;&#x5927;&#xFF0C;&#x9700;&#x8981;&#x8C03;&#x5C0F;&#xFF0C;&#x5EFA;&#x8BAE;&#x4E0E;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x5730;&#x56FE;&#x4E00;&#x6837;&#x5927;</li>
<li>&#x8BB0;&#x5F97;&#x5F00;&#x542F;zsProxy</li>
<li>&#x8BA1;&#x7B97;&#x673A;&#x6027;&#x80FD;&#x4E0D;&#x662F;&#x95EE;&#x9898;&#xFF0C;&#x53C2;&#x6570;&#x8BBE;&#x7F6E;&#x826F;&#x597D;&#xFF0C;&#x5C40;&#x90E8;&#x89C4;&#x5212;&#x5668;&#x6BD4;&#x8F83;&#x51C6;</li>
<li>&#x7F51;&#x7EDC;&#x6709;&#x70B9;&#x5361;&#xFF0C;&#x5EFA;&#x8BAE;&#x964D;&#x4F4E;&#x6570;&#x636E;&#x53D1;&#x5E03;&#x9891;&#x7387;&#x6216;&#x8005;&#x964D;&#x4F4E;&#x5730;&#x56FE;&#x5206;&#x8FA8;&#x7387;&#xFF08;&#x53EA;&#x662F;&#x663E;&#x793A;&#x5361;&#xFF0C;&#x8FD8;&#x662F;&#x4E0D;&#x6539;&#x4E86;&#xFF09;</li>
<li>&#x5728;&#x771F;&#x673A;&#x4E0A;&#x5B9E;&#x9A8C;&#x9700;&#x8981;&#x4FEE;&#x6539;&#x82E5;&#x5E72;&#x6587;&#x4EF6;<h2 id="&#x4EE5;&#x524D;&#x7684;&#x7B14;&#x8BB0;"><a href="#&#x4EE5;&#x524D;&#x7684;&#x7B14;&#x8BB0;" class="headerlink" title="&#x4EE5;&#x524D;&#x7684;&#x7B14;&#x8BB0;"></a>&#x4EE5;&#x524D;&#x7684;&#x7B14;&#x8BB0;</h2><h3 id="&#x4EE3;&#x4EF7;&#x5730;&#x56FE;"><a href="#&#x4EE3;&#x4EF7;&#x5730;&#x56FE;-1" class="headerlink" title="&#x4EE3;&#x4EF7;&#x5730;&#x56FE;"></a>&#x4EE3;&#x4EF7;&#x5730;&#x56FE;</h3><h4 id="&#x7EFC;&#x8FF0;"><a href="#&#x7EFC;&#x8FF0;" class="headerlink" title="&#x7EFC;&#x8FF0;"></a>&#x7EFC;&#x8FF0;</h4></li>
<li>&#x7EA2;&#x8272;&#x7684;&#x662F;&#x969C;&#x788D;&#x7269;&#xFF0C;&#x84DD;&#x8272;&#x7684;&#x662F;&#x969C;&#x788D;&#x7269;&#x7684;&#x81A8;&#x80C0;&#x533A;&#x57DF;&#xFF0C;&#x7EA2;&#x8272;&#x591A;&#x8FB9;&#x5F62;&#x662F;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x8F6E;&#x5ED3;&#xFF0C;&#x8981;&#x505A;&#x5230;&#x907F;&#x969C;&#xFF0C;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x8F6E;&#x5ED3;&#x59CB;&#x7EC8;&#x4E0D;&#x80FD;&#x7A7F;&#x8FC7;&#x84DD;&#x8272;&#x533A;&#x57DF;&#xFF0C;&#x66F4;&#x4E0D;&#x7528;&#x8BF4;&#x7EA2;&#x8272;&#x533A;&#x57DF;</li>
<li>&#x73B0;&#x6709;&#x7684;&#x529F;&#x80FD;&#x662F;&#x4E8C;&#x7EF4;&#x5730;&#x56FE;&#xFF0C;&#x53EA;&#x80FD;&#x505A;&#x5E73;&#x9762;&#x89C4;&#x5212;&#xFF0C;&#x4F46;&#x662F;&#x969C;&#x788D;&#x5C42;&#x5730;&#x56FE;&#x53EF;&#x4EE5;&#x662F;&#x4E09;&#x7EF4;&#x7684;<h4 id="&#x6807;&#x8BB0;&#x4E0E;&#x6E05;&#x9664;"><a href="#&#x6807;&#x8BB0;&#x4E0E;&#x6E05;&#x9664;" class="headerlink" title="&#x6807;&#x8BB0;&#x4E0E;&#x6E05;&#x9664;"></a>&#x6807;&#x8BB0;&#x4E0E;&#x6E05;&#x9664;</h4></li>
<li>&#x901A;&#x8FC7;&#x8BA2;&#x9605;&#x7279;&#x5B9A;&#x4F20;&#x611F;&#x5668;&#x4E3B;&#x9898;&#x6D88;&#x606F;&#x6765;&#x66F4;&#x65B0;&#x5730;&#x56FE;<h4 id="&#x5360;&#x636E;&#x4E0E;&#x91CA;&#x653E;&#x672A;&#x77E5;&#x533A;&#x57DF;&#x533A;&#x57DF;&#x7684;&#x4E09;&#x79CD;&#x5C5E;&#x6027;"><a href="#&#x5360;&#x636E;&#x4E0E;&#x91CA;&#x653E;&#xFF0C;&#x672A;&#x77E5;&#x533A;&#x57DF;&#xFF08;&#x533A;&#x57DF;&#x7684;&#x4E09;&#x79CD;&#x5C5E;&#x6027;&#xFF09;" class="headerlink" title="&#x5360;&#x636E;&#x4E0E;&#x91CA;&#x653E;&#xFF0C;&#x672A;&#x77E5;&#x533A;&#x57DF;&#xFF08;&#x533A;&#x57DF;&#x7684;&#x4E09;&#x79CD;&#x5C5E;&#x6027;&#xFF09;"></a>&#x5360;&#x636E;&#x4E0E;&#x91CA;&#x653E;&#xFF0C;&#x672A;&#x77E5;&#x533A;&#x57DF;&#xFF08;&#x533A;&#x57DF;&#x7684;&#x4E09;&#x79CD;&#x5C5E;&#x6027;&#xFF09;</h4></li>
<li>&#x6BCF;&#x4E00;&#x4E2A;&#x7F51;&#x683C;&#x90FD;&#x90FD;&#x53EF;&#x4EE5;&#x6709;255&#x79CD;&#x503C;&#xFF08;&#x989C;&#x8272;&#xFF09;&#xFF0C;&#x4E0D;&#x8FC7;&#x4E00;&#x822C;&#x6765;&#x8BB2;&#x53EA;&#x6709;&#x4E09;&#x79CD;&#x989C;&#x8272;&#xFF0C;&#x8981;&#x4E48;&#x662F;&#x7A7A;&#x7684;&#xFF0C;&#x8981;&#x4E48;&#x662F;&#x5360;&#x636E;&#x7684;&#xFF0C;&#x8981;&#x4E48;&#x662F;&#x672A;&#x77E5;&#x7684;<h4 id="&#x5730;&#x56FE;&#x66F4;&#x65B0;"><a href="#&#x5730;&#x56FE;&#x66F4;&#x65B0;" class="headerlink" title="&#x5730;&#x56FE;&#x66F4;&#x65B0;"></a>&#x5730;&#x56FE;&#x66F4;&#x65B0;</h4></li>
<li>&#x66F4;&#x65B0;&#x9891;&#x7387;&#x53EF;&#x4EE5;&#x7528;&#x53C2;&#x6570;&#x63A7;&#x5236;<h4 id="tf"><a href="#tf" class="headerlink" title="tf"></a>tf</h4></li>
<li>&#x4E3A;&#x4E86;&#x9002;&#x5F53;&#x5730;&#x63D2;&#x5165;&#x4F20;&#x611F;&#x5668;&#x6570;&#x636E;&#xFF0C;&#x9700;&#x8981;&#x6709;&#x5408;&#x9002;&#x7684;&#x5DE6;&#x8FB9;&#x53D8;&#x6362;<h4 id="&#x4EE3;&#x4EF7;&#x503C;"><a href="#&#x4EE3;&#x4EF7;&#x503C;" class="headerlink" title="&#x4EE3;&#x4EF7;&#x503C;"></a>&#x4EE3;&#x4EF7;&#x503C;</h4></li>
<li>Lethal<ul>
<li>&#x4E00;&#x4E2A;&#x786E;&#x5B9A;&#x7684;&#x969C;&#x788D;&#x7269;</li>
</ul>
</li>
<li>Inscribed&#xFF08;&#x8BB0;&#x540D;&#x7684;&#xFF09;<ul>
<li>&#x662F;&#x4E00;&#x4E2A;&#x969C;&#x788D;&#x7269;&#xFF0C;&#x53EA;&#x662F;&#x8DDD;&#x79BB;&#x8F83;&#x8FDC;</li>
</ul>
</li>
<li>Possibly circumscribed<ul>
<li>&#x4F7F;&#x7528;&#x53E6;&#x4E00;&#x4E2A;&#x8DDD;&#x79BB;&#x9608;&#x503C;&#x6765;&#x5EA6;&#x91CF;&#x7684;&#x969C;&#x788D;&#x7269;</li>
</ul>
</li>
<li>Freespace<ul>
<li>&#x96F6;&#xFF0C;&#x6CA1;&#x6709;&#x4EFB;&#x4F55;&#x4E1C;&#x897F;&#xFF0C;&#x673A;&#x5668;&#x4EBA;&#x4E0D;&#x5E94;&#x8BE5;&#x53BB;&#x90A3;&#x513F;</li>
</ul>
</li>
<li>Unknown<ul>
<li>&#x6CA1;&#x6709;&#x4FE1;&#x606F;</li>
</ul>
</li>
<li>&#x5176;&#x4ED6;<h4 id="&#x5730;&#x56FE;&#x7C7B;&#x578B;"><a href="#&#x5730;&#x56FE;&#x7C7B;&#x578B;" class="headerlink" title="&#x5730;&#x56FE;&#x7C7B;&#x578B;"></a>&#x5730;&#x56FE;&#x7C7B;&#x578B;</h4></li>
<li>&#x7B2C;&#x4E00;&#x79CD;&#x662F;static_map&#xFF0C;&#x7B2C;&#x4E8C;&#x79CD;&#x662F;&#x8BBE;&#x5B9A;&#x597D;&#x957F;&#x548C;&#x5BBD;&#x7684;rolling_window&#xFF0C;&#x8FD9;&#x79CD;&#x5730;&#x56FE;&#x4F1A;&#x968F;&#x7740;&#x673A;&#x5668;&#x4EBA;&#x7684;&#x79FB;&#x52A8;&#x800C;&#x79FB;&#x52A8;&#x3002;</li>
</ul>
</1>
      

      
        <div class="page-reward">
          <a href="javascript:;" class="page-reward-btn tooltip-top">
            <div class="tooltip tooltip-east">
            <span class="tooltip-item">
              赏
            </span>
            <span class="tooltip-content">
              <span class="tooltip-text">
                <span class="tooltip-inner">
                  <p class="reward-p"><i class="icon icon-quo-left"></i>谢谢你请我吃糖果<i class="icon icon-quo-right"></i></p>
                  <div class="reward-box">
                    
                    <div class="reward-box-item">
                      <img class="reward-img" src="http://7xvunf.com1.z0.glb.clouddn.com/alipay.jpg">
                      <span class="reward-type">支付宝</span>
                    </div>
                    
                    
                    <div class="reward-box-item">
                      <img class="reward-img" src="http://7xvunf.com1.z0.glb.clouddn.com/wechatpay.jpg">
                      <span class="reward-type">微信</span>
                    </div>
                    
                  </div>
                </span>
              </span>
            </span>
          </div>
          </a>
        </div>
      
    </div>
    <div class="article-info article-info-index">
      
      
	<div class="article-tag tagcloud">
		<i class="icon-price-tags"></i>
		<ul class="article-tag-list">
			 
        <li class="article-tag-list-item">
        	<a href="javascript:void(0)" class="article-tag-list-link color4">机器人</a>
        </li>
       
        <li class="article-tag-list-item">
        	<a href="javascript:void(0)" class="article-tag-list-link color3">机器人软件设计</a>
        </li>
       
        <li class="article-tag-list-item">
        	<a href="javascript:void(0)" class="article-tag-list-link color4">ROS</a>
        </li>
      
		</ul>
	</div>

      

      

      
        
<div class="share-btn share-icons tooltip-left">
  <div class="tooltip tooltip-east">
    <span class="tooltip-item">
      <a href="javascript:;" class="share-sns share-outer">
        <i class="icon icon-share"></i>
      </a>
    </span>
    <span class="tooltip-content">
      <div class="share-wrap">
        <div class="share-icons">
          <a class="weibo share-sns" href="javascript:;" data-type="weibo">
            <i class="icon icon-weibo"></i>
          </a>
          <a class="weixin share-sns wxFab" href="javascript:;" data-type="weixin">
            <i class="icon icon-weixin"></i>
          </a>
          <a class="qq share-sns" href="javascript:;" data-type="qq">
            <i class="icon icon-qq"></i>
          </a>
          <a class="douban share-sns" href="javascript:;" data-type="douban">
            <i class="icon icon-douban"></i>
          </a>
          <a class="qzone share-sns" href="javascript:;" data-type="qzone">
            <i class="icon icon-qzone"></i>
          </a>
          <a class="facebook share-sns" href="javascript:;" data-type="facebook">
            <i class="icon icon-facebook"></i>
          </a>
          <a class="twitter share-sns" href="javascript:;" data-type="twitter">
            <i class="icon icon-twitter"></i>
          </a>
          <a class="google share-sns" href="javascript:;" data-type="google">
            <i class="icon icon-google"></i>
          </a>
        </div>
      </div>
    </span>
  </div>
</div>

<div class="page-modal wx-share js-wx-box">
    <a class="close js-modal-close" href="javascript:;"><i class="icon icon-close"></i></a>
    <p>扫一扫，分享到微信</p>
    <div class="wx-qrcode">
      <img src="http://s.jiathis.com/qrcode.php?url=https://ZhenshengLee.github.io/2017/01/03/170103-ROS-Navigation调参/" alt="微信分享二维码">
    </div>
</div>

<div class="mask js-mask"></div>
      
      <div class="clearfix"></div>
    </div>
  </div>
</article>

  
<nav id="article-nav">
  
    <a href="/2017/01/03/170103-git技巧/" id="article-nav-newer" class="article-nav-link-wrap">
      <i class="icon-circle-left"></i>
      <div class="article-nav-title">
        
          一些git技巧
        
      </div>
    </a>
  
  
    <a href="/2017/01/03/170103-ROSARIA总结/" id="article-nav-older" class="article-nav-link-wrap">
      <div class="article-nav-title">ROSARIA使用总结</div>
      <i class="icon-circle-right"></i>
    </a>
  
</nav>






  
  <div class="duoshuo">
	<!-- 多说评论框 start -->
	<div class="ds-thread" data-thread-key="170103-ROS-Navigation调参" data-title="ROS-Navigation调参" data-url="https://ZhenshengLee.github.io/2017/01/03/170103-ROS-Navigation调参/"></div>
	<!-- 多说评论框 end -->
	<!-- 多说公共JS代码 start (一个网页只需插入一次) -->
	<script type="text/javascript">
	var duoshuoQuery = {short_name:"true"};
	(function() {
		var ds = document.createElement('script');
		ds.type = 'text/javascript';ds.async = true;
		ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
		ds.charset = 'UTF-8';
		(document.getElementsByTagName('head')[0] 
		 || document.getElementsByTagName('body')[0]).appendChild(ds);
	})();
	</script>
	<!-- 多说公共JS代码 end -->
</div>

  




          </div>
        </div>
      </div>
      <footer id="footer">
  <div class="outer">
    <div id="footer-info">
    	<div class="footer-left">
    		&copy; 2017 黎振胜
    	</div>
      	<div class="footer-right">
      		<a href="http://hexo.io/" target="_blank">Hexo</a>  Theme <a href="https://github.com/litten/hexo-theme-yilia" target="_blank">Yilia</a> by Litten
      	</div>
    </div>
  </div>
</footer>
    </div>
    <script>
	var yiliaConfig = {
		mathjax: true,
		isHome: false,
		isPost: true,
		isArchive: false,
		isTag: false,
		isCategory: false,
		open_in_new: false,
		root: "/",
		innerArchive: true,
		showTags: false
	}
</script>

<script>
!function(t){function n(r){if(e[r])return e[r].exports;var o=e[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var e={};return n.m=t,n.c=e,n.p="/",n(0)}([function(t,n,e){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,n){var e=/\/|index.html/g;return t.replace(e,"")===n.replace(e,"")}function i(){for(var t=document.querySelectorAll(".js-header-menu li a"),n=window.location.pathname,e=0,r=t.length;e<r;e++){var i=t[e];o(n,i.getAttribute("href"))&&(0,d.default)(i,"active")}}function u(t){for(var n=t.offsetLeft,e=t.offsetParent;null!==e;)n+=e.offsetLeft,e=e.offsetParent;return n}function f(t){for(var n=t.offsetTop,e=t.offsetParent;null!==e;)n+=e.offsetTop,e=e.offsetParent;return n}function c(t,n,e,r,o){var i=u(t),c=f(t)-n;if(c-e<=o){var a=t.$newDom;a||(a=t.cloneNode(!0),(0,h.default)(t,a),t.$newDom=a,a.style.position="fixed",a.style.top=(e||c)+"px",a.style.left=i+"px",a.style.zIndex=r||2,a.style.width="100%",a.style.color="#fff"),a.style.visibility="visible",t.style.visibility="hidden"}else{t.style.visibility="visible";var s=t.$newDom;s&&(s.style.visibility="hidden")}}function a(){var t=document.querySelector(".js-overlay"),n=document.querySelector(".js-header-menu");c(t,document.body.scrollTop,-63,2,0),c(n,document.body.scrollTop,1,3,0)}function s(){document.querySelector("#container").addEventListener("scroll",function(t){a()}),window.addEventListener("scroll",function(t){a()}),a()}function l(){x.default.versions.mobile&&window.screen.width<800&&(i(),s())}var p=e(71),d=r(p),v=e(72),y=(r(v),e(84)),h=r(y),b=e(69),x=r(b),m=e(75),g=r(m),w=e(70);l(),(0,w.addLoadEvent)(function(){g.default.init()}),t.exports={}},function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},function(t,n,e){var r=e(49),o=e(15);t.exports=function(t){return r(o(t))}},function(t,n,e){t.exports=!e(8)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,n,e){var r=e(6),o=e(12);t.exports=e(4)?function(t,n,e){return r.f(t,n,o(1,e))}:function(t,n,e){return t[n]=e,t}},function(t,n,e){var r=e(10),o=e(30),i=e(24),u=Object.defineProperty;n.f=e(4)?Object.defineProperty:function(t,n,e){if(r(t),n=i(n,!0),r(e),o)try{return u(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},function(t,n,e){var r=e(22)("wks"),o=e(13),i=e(1).Symbol,u="function"==typeof i,f=t.exports=function(t){return r[t]||(r[t]=u&&i[t]||(u?i:o)("Symbol."+t))};f.store=r},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,e){var r=e(35),o=e(16);t.exports=Object.keys||function(t){return r(t,o)}},function(t,n,e){var r=e(11);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},function(t,n){var e=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=e)},function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,n){t.exports={}},function(t,n){t.exports=!0},function(t,n){n.f={}.propertyIsEnumerable},function(t,n,e){var r=e(6).f,o=e(2),i=e(7)("toStringTag");t.exports=function(t,n,e){t&&!o(t=e?t:t.prototype,i)&&r(t,i,{configurable:!0,value:n})}},function(t,n,e){var r=e(22)("keys"),o=e(13);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,n,e){var r=e(1),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},function(t,n,e){var r=e(11);t.exports=function(t,n){if(!r(t))return t;var e,o;if(n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;if("function"==typeof(e=t.valueOf)&&!r(o=e.call(t)))return o;if(!n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,n,e){var r=e(1),o=e(14),i=e(18),u=e(26),f=e(6).f;t.exports=function(t){var n=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in n||f(n,t,{value:u.f(t)})}},function(t,n,e){n.f=e(7)},function(t,n,e){var r=e(1),o=e(14),i=e(46),u=e(5),f="prototype",c=function(t,n,e){var a,s,l,p=t&c.F,d=t&c.G,v=t&c.S,y=t&c.P,h=t&c.B,b=t&c.W,x=d?o:o[n]||(o[n]={}),m=x[f],g=d?r:v?r[n]:(r[n]||{})[f];d&&(e=n);for(a in e)s=!p&&g&&void 0!==g[a],s&&a in x||(l=s?g[a]:e[a],x[a]=d&&"function"!=typeof g[a]?e[a]:h&&s?i(l,r):b&&g[a]==l?function(t){var n=function(n,e,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,e)}return new t(n,e,r)}return t.apply(this,arguments)};return n[f]=t[f],n}(l):y&&"function"==typeof l?i(Function.call,l):l,y&&((x.virtual||(x.virtual={}))[a]=l,t&c.R&&m&&!m[a]&&u(m,a,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},function(t,n,e){var r=e(11),o=e(1).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,n,e){t.exports=!e(4)&&!e(8)(function(){return 7!=Object.defineProperty(e(29)("div"),"a",{get:function(){return 7}}).a})},function(t,n,e){"use strict";var r=e(18),o=e(27),i=e(36),u=e(5),f=e(2),c=e(17),a=e(51),s=e(20),l=e(58),p=e(7)("iterator"),d=!([].keys&&"next"in[].keys()),v="@@iterator",y="keys",h="values",b=function(){return this};t.exports=function(t,n,e,x,m,g,w){a(e,n,x);var O,S,_,j=function(t){if(!d&&t in A)return A[t];switch(t){case y:return function(){return new e(this,t)};case h:return function(){return new e(this,t)}}return function(){return new e(this,t)}},P=n+" Iterator",E=m==h,M=!1,A=t.prototype,T=A[p]||A[v]||m&&A[m],L=T||j(m),N=m?E?j("entries"):L:void 0,C="Array"==n?A.entries||T:T;if(C&&(_=l(C.call(new t)),_!==Object.prototype&&(s(_,P,!0),r||f(_,p)||u(_,p,b))),E&&T&&T.name!==h&&(M=!0,L=function(){return T.call(this)}),r&&!w||!d&&!M&&A[p]||u(A,p,L),c[n]=L,c[P]=b,m)if(O={values:E?L:j(h),keys:g?L:j(y),entries:N},w)for(S in O)S in A||i(A,S,O[S]);else o(o.P+o.F*(d||M),n,O);return O}},function(t,n,e){var r=e(10),o=e(55),i=e(16),u=e(21)("IE_PROTO"),f=function(){},c="prototype",a=function(){var t,n=e(29)("iframe"),r=i.length,o="<",u=">";for(n.style.display="none",e(48).appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write(o+"script"+u+"document.F=Object"+o+"/script"+u),t.close(),a=t.F;r--;)delete a[c][i[r]];return a()};t.exports=Object.create||function(t,n){var e;return null!==t?(f[c]=r(t),e=new f,f[c]=null,e[u]=t):e=a(),void 0===n?e:o(e,n)}},function(t,n,e){var r=e(35),o=e(16).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,n){n.f=Object.getOwnPropertySymbols},function(t,n,e){var r=e(2),o=e(3),i=e(45)(!1),u=e(21)("IE_PROTO");t.exports=function(t,n){var e,f=o(t),c=0,a=[];for(e in f)e!=u&&r(f,e)&&a.push(e);for(;n.length>c;)r(f,e=n[c++])&&(~i(a,e)||a.push(e));return a}},function(t,n,e){t.exports=e(5)},function(t,n,e){var r=e(15);t.exports=function(t){return Object(r(t))}},function(t,n,e){t.exports={default:e(41),__esModule:!0}},function(t,n,e){t.exports={default:e(42),__esModule:!0}},function(t,n,e){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}n.__esModule=!0;var o=e(39),i=r(o),u=e(38),f=r(u),c="function"==typeof f.default&&"symbol"==typeof i.default?function(t){return typeof t}:function(t){return t&&"function"==typeof f.default&&t.constructor===f.default&&t!==f.default.prototype?"symbol":typeof t};n.default="function"==typeof f.default&&"symbol"===c(i.default)?function(t){return"undefined"==typeof t?"undefined":c(t)}:function(t){return t&&"function"==typeof f.default&&t.constructor===f.default&&t!==f.default.prototype?"symbol":"undefined"==typeof t?"undefined":c(t)}},function(t,n,e){e(65),e(63),e(66),e(67),t.exports=e(14).Symbol},function(t,n,e){e(64),e(68),t.exports=e(26).f("iterator")},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n){t.exports=function(){}},function(t,n,e){var r=e(3),o=e(61),i=e(60);t.exports=function(t){return function(n,e,u){var f,c=r(n),a=o(c.length),s=i(u,a);if(t&&e!=e){for(;a>s;)if(f=c[s++],f!=f)return!0}else for(;a>s;s++)if((t||s in c)&&c[s]===e)return t||s||0;return!t&&-1}}},function(t,n,e){var r=e(43);t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,o){return t.call(n,e,r,o)}}return function(){return t.apply(n,arguments)}}},function(t,n,e){var r=e(9),o=e(34),i=e(19);t.exports=function(t){var n=r(t),e=o.f;if(e)for(var u,f=e(t),c=i.f,a=0;f.length>a;)c.call(t,u=f[a++])&&n.push(u);return n}},function(t,n,e){t.exports=e(1).document&&document.documentElement},function(t,n,e){var r=e(28);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,n,e){var r=e(28);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,n,e){"use strict";var r=e(32),o=e(12),i=e(20),u={};e(5)(u,e(7)("iterator"),function(){return this}),t.exports=function(t,n,e){t.prototype=r(u,{next:o(1,e)}),i(t,n+" Iterator")}},function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},function(t,n,e){var r=e(9),o=e(3);t.exports=function(t,n){for(var e,i=o(t),u=r(i),f=u.length,c=0;f>c;)if(i[e=u[c++]]===n)return e}},function(t,n,e){var r=e(13)("meta"),o=e(11),i=e(2),u=e(6).f,f=0,c=Object.isExtensible||function(){return!0},a=!e(8)(function(){return c(Object.preventExtensions({}))}),s=function(t){u(t,r,{value:{i:"O"+ ++f,w:{}}})},l=function(t,n){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!c(t))return"F";if(!n)return"E";s(t)}return t[r].i},p=function(t,n){if(!i(t,r)){if(!c(t))return!0;if(!n)return!1;s(t)}return t[r].w},d=function(t){return a&&v.NEED&&c(t)&&!i(t,r)&&s(t),t},v=t.exports={KEY:r,NEED:!1,fastKey:l,getWeak:p,onFreeze:d}},function(t,n,e){var r=e(6),o=e(10),i=e(9);t.exports=e(4)?Object.defineProperties:function(t,n){o(t);for(var e,u=i(n),f=u.length,c=0;f>c;)r.f(t,e=u[c++],n[e]);return t}},function(t,n,e){var r=e(19),o=e(12),i=e(3),u=e(24),f=e(2),c=e(30),a=Object.getOwnPropertyDescriptor;n.f=e(4)?a:function(t,n){if(t=i(t),n=u(n,!0),c)try{return a(t,n)}catch(t){}if(f(t,n))return o(!r.f.call(t,n),t[n])}},function(t,n,e){var r=e(3),o=e(33).f,i={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],f=function(t){try{return o(t)}catch(t){return u.slice()}};t.exports.f=function(t){return u&&"[object Window]"==i.call(t)?f(t):o(r(t))}},function(t,n,e){var r=e(2),o=e(37),i=e(21)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,n,e){var r=e(23),o=e(15);t.exports=function(t){return function(n,e){var i,u,f=String(o(n)),c=r(e),a=f.length;return c<0||c>=a?t?"":void 0:(i=f.charCodeAt(c),i<55296||i>56319||c+1===a||(u=f.charCodeAt(c+1))<56320||u>57343?t?f.charAt(c):i:t?f.slice(c,c+2):(i-55296<<10)+(u-56320)+65536)}}},function(t,n,e){var r=e(23),o=Math.max,i=Math.min;t.exports=function(t,n){return t=r(t),t<0?o(t+n,0):i(t,n)}},function(t,n,e){var r=e(23),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,n,e){"use strict";var r=e(44),o=e(52),i=e(17),u=e(3);t.exports=e(31)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,e=this._i++;return!t||e>=t.length?(this._t=void 0,o(1)):"keys"==n?o(0,e):"values"==n?o(0,t[e]):o(0,[e,t[e]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,n){},function(t,n,e){"use strict";var r=e(59)(!0);e(31)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,e=this._i;return e>=n.length?{value:void 0,done:!0}:(t=r(n,e),this._i+=t.length,{value:t,done:!1})})},function(t,n,e){"use strict";var r=e(1),o=e(2),i=e(4),u=e(27),f=e(36),c=e(54).KEY,a=e(8),s=e(22),l=e(20),p=e(13),d=e(7),v=e(26),y=e(25),h=e(53),b=e(47),x=e(50),m=e(10),g=e(3),w=e(24),O=e(12),S=e(32),_=e(57),j=e(56),P=e(6),E=e(9),M=j.f,A=P.f,T=_.f,L=r.Symbol,N=r.JSON,C=N&&N.stringify,k="prototype",F=d("_hidden"),q=d("toPrimitive"),I={}.propertyIsEnumerable,B=s("symbol-registry"),D=s("symbols"),W=s("op-symbols"),H=Object[k],K="function"==typeof L,R=r.QObject,J=!R||!R[k]||!R[k].findChild,U=i&&a(function(){return 7!=S(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a})?function(t,n,e){var r=M(H,n);r&&delete H[n],A(t,n,e),r&&t!==H&&A(H,n,r)}:A,G=function(t){var n=D[t]=S(L[k]);return n._k=t,n},$=K&&"symbol"==typeof L.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof L},z=function(t,n,e){return t===H&&z(W,n,e),m(t),n=w(n,!0),m(e),o(D,n)?(e.enumerable?(o(t,F)&&t[F][n]&&(t[F][n]=!1),e=S(e,{enumerable:O(0,!1)})):(o(t,F)||A(t,F,O(1,{})),t[F][n]=!0),U(t,n,e)):A(t,n,e)},Y=function(t,n){m(t);for(var e,r=b(n=g(n)),o=0,i=r.length;i>o;)z(t,e=r[o++],n[e]);return t},Q=function(t,n){return void 0===n?S(t):Y(S(t),n)},X=function(t){var n=I.call(this,t=w(t,!0));return!(this===H&&o(D,t)&&!o(W,t))&&(!(n||!o(this,t)||!o(D,t)||o(this,F)&&this[F][t])||n)},V=function(t,n){if(t=g(t),n=w(n,!0),t!==H||!o(D,n)||o(W,n)){var e=M(t,n);return!e||!o(D,n)||o(t,F)&&t[F][n]||(e.enumerable=!0),e}},Z=function(t){for(var n,e=T(g(t)),r=[],i=0;e.length>i;)o(D,n=e[i++])||n==F||n==c||r.push(n);return r},tt=function(t){for(var n,e=t===H,r=T(e?W:g(t)),i=[],u=0;r.length>u;)!o(D,n=r[u++])||e&&!o(H,n)||i.push(D[n]);return i};K||(L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),n=function(e){this===H&&n.call(W,e),o(this,F)&&o(this[F],t)&&(this[F][t]=!1),U(this,t,O(1,e))};return i&&J&&U(H,t,{configurable:!0,set:n}),G(t)},f(L[k],"toString",function(){return this._k}),j.f=V,P.f=z,e(33).f=_.f=Z,e(19).f=X,e(34).f=tt,i&&!e(18)&&f(H,"propertyIsEnumerable",X,!0),v.f=function(t){return G(d(t))}),u(u.G+u.W+u.F*!K,{Symbol:L});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;nt.length>et;)d(nt[et++]);for(var nt=E(d.store),et=0;nt.length>et;)y(nt[et++]);u(u.S+u.F*!K,"Symbol",{for:function(t){return o(B,t+="")?B[t]:B[t]=L(t)},keyFor:function(t){if($(t))return h(B,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){J=!0},useSimple:function(){J=!1}}),u(u.S+u.F*!K,"Object",{create:Q,defineProperty:z,defineProperties:Y,getOwnPropertyDescriptor:V,getOwnPropertyNames:Z,getOwnPropertySymbols:tt}),N&&u(u.S+u.F*(!K||a(function(){var t=L();return"[null]"!=C([t])||"{}"!=C({a:t})||"{}"!=C(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!$(t)){for(var n,e,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return n=r[1],"function"==typeof n&&(e=n),!e&&x(n)||(n=function(t,n){if(e&&(n=e.call(this,t,n)),!$(n))return n}),r[1]=n,C.apply(N,r)}}}),L[k][q]||e(5)(L[k],q,L[k].valueOf),l(L,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},function(t,n,e){e(25)("asyncIterator")},function(t,n,e){e(25)("observable")},function(t,n,e){e(62);for(var r=e(1),o=e(5),i=e(17),u=e(7)("toStringTag"),f=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var a=f[c],s=r[a],l=s&&s.prototype;l&&!l[u]&&o(l,u,a),i[a]=i.Array}},function(t,n){"use strict";var e={versions:function(){var t=window.navigator.userAgent;return{trident:t.indexOf("Trident")>-1,presto:t.indexOf("Presto")>-1,webKit:t.indexOf("AppleWebKit")>-1,gecko:t.indexOf("Gecko")>-1&&t.indexOf("KHTML")==-1,mobile:!!t.match(/AppleWebKit.*Mobile.*/),ios:!!t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:t.indexOf("Android")>-1||t.indexOf("Linux")>-1,iPhone:t.indexOf("iPhone")>-1||t.indexOf("Mac")>-1,iPad:t.indexOf("iPad")>-1,webApp:t.indexOf("Safari")==-1,weixin:t.indexOf("MicroMessenger")==-1}}()};t.exports=e},function(t,n,e){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}var o=e(40),i=r(o),u=function(){function t(t,n,e){return n||e?String.fromCharCode(n||e):o[t]||t}function n(t){return l[t]}var e=/&quot;|&lt;|&gt;|&amp;|&nbsp;|&apos;|&#(\d+);|&#(\d+)/g,r=/['<> "&]/g,o={"&quot;":'"',"&lt;":"<","&gt;":">","&amp;":"&","&nbsp;":" "},f=/\u00a0/g,c=/<br\s*\/?>/gi,a=/\r?\n/g,s=/\s/g,l={};for(var p in o)l[o[p]]=p;return o["&apos;"]="'",l["'"]="&#39;",{encode:function(t){return t?(""+t).replace(r,n).replace(a,"<br/>").replace(s,"&nbsp;"):""},decode:function(n){return n?(""+n).replace(c,"\n").replace(e,t).replace(f," "):""},encodeBase16:function(t){if(!t)return t;t+="";for(var n=[],e=0,r=t.length;r>e;e++)n.push(t.charCodeAt(e).toString(16).toUpperCase());return n.join("")},encodeBase16forJSON:function(t){if(!t)return t;t=t.replace(/[\u4E00-\u9FBF]/gi,function(t){return escape(t).replace("%u","\\u")});for(var n=[],e=0,r=t.length;r>e;e++)n.push(t.charCodeAt(e).toString(16).toUpperCase());return n.join("")},decodeBase16:function(t){if(!t)return t;t+="";for(var n=[],e=0,r=t.length;r>e;e+=2)n.push(String.fromCharCode("0x"+t.slice(e,e+2)));return n.join("")},encodeObject:function(t){if(t instanceof Array)for(var n=0,e=t.length;e>n;n++)t[n]=u.encodeObject(t[n]);else if("object"==("undefined"==typeof t?"undefined":(0,i.default)(t)))for(var r in t)t[r]=u.encodeObject(t[r]);else if("string"==typeof t)return u.encode(t);return t},loadScript:function(t){var n=document.createElement("script");document.getElementsByTagName("body")[0].appendChild(n),n.setAttribute("src",t)},addLoadEvent:function(t){var n=window.onload;"function"!=typeof window.onload?window.onload=t:window.onload=function(){n(),t()}}}}();t.exports=u},function(t,n){function e(t,n){t.classList?t.classList.add(n):t.className+=" "+n}t.exports=e},function(t,n){function e(t,n){if(t.classList)t.classList.remove(n);else{var e=new RegExp("(^|\\b)"+n.split(" ").join("|")+"(\\b|$)","gi");t.className=t.className.replace(e," ")}}t.exports=e},,,function(t,n){"use strict";function e(){var t=document.querySelector("#page-nav");if(t&&!document.querySelector("#page-nav .extend.prev")&&(t.innerHTML='<a class="extend prev disabled" rel="prev">&laquo; Prev</a>'+t.innerHTML),t&&!document.querySelector("#page-nav .extend.next")&&(t.innerHTML=t.innerHTML+'<a class="extend next disabled" rel="next">Next &raquo;</a>'),yiliaConfig&&yiliaConfig.open_in_new){var n=document.querySelectorAll(".article-entry a:not(.article-more-a)");n.forEach(function(t){t.setAttribute("target","_blank")})}var e=document.querySelector("#js-aboutme");e&&0!==e.length&&(e.innerHTML=e.innerText)}t.exports={init:e}},,,,,,,,,function(t,n){function e(t,n){if("string"==typeof n)return t.insertAdjacentHTML("afterend",n);var e=t.nextSibling;return e?t.parentNode.insertBefore(n,e):t.parentNode.appendChild(n)}t.exports=e}]);
</script>
<script src="/main.68ab53.js"></script>
<script>
(function() {
	var loadScript = function(path) {
	    var $script = document.createElement('script')
	    document.getElementsByTagName('body')[0].appendChild($script)
	    $script.setAttribute('src', path)
	}
	loadScript("/slider.fa3fc2.js")
})();
</script>




<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    tex2jax: {
        inlineMath: [ ['$','$'], ["\\(","\\)"]  ],
        processEscapes: true,
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    }
});

MathJax.Hub.Queue(function() {
    var all = MathJax.Hub.getAllJax(), i;
    for(i=0; i < all.length; i += 1) {
        all[i].SourceElement().parentNode.className += ' has-jax';                 
    }       
});
</script>

<script src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>


    
<div class="tools-col" q-class="show:isShow,hide:isShow|isFalse" q-on="click:stop(e)">
  <div class="tools-nav header-menu">
    
    
      
      
      
    
      
    
      
      
      
    
    

    <ul style="width: 70%">
    
    
      
      <li style="width: 50%" q-on="click: openSlider(e, 'innerArchive')"><a href="javascript:void(0)" q-class="active:innerArchive">所有文章</a></li>
      
        
      
        
      
      <li style="width: 50%" q-on="click: openSlider(e, 'aboutme')"><a href="javascript:void(0)" q-class="active:aboutme">关于我</a></li>
      
        
    </ul>
  </div>
  <div class="tools-wrap">
    
    	<section class="tools-section tools-section-all" q-show="innerArchive">
        <div class="search-wrap">
          <input class="search-ipt" q-model="search" type="text" placeholder="find something…">
          <i class="icon-search icon" q-show="search|isEmptyStr"></i>
          <i class="icon-close icon" q-show="search|isNotEmptyStr" q-on="click:clearChose(e)"></i>
        </div>
        <div class="widget tagcloud search-tag">
          <p class="search-tag-wording">tag:</p>
          <label class="search-switch">
            <input type="checkbox" q-on="click:toggleTag(e)" q-attr="checked:showTags">
          </label>
          <ul class="article-tag-list" q-show="showTags">
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">机器人软件构造</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color4">机器人</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">部署</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color4">git</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">其他</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">建站</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color2">Ubuntu</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">机器人软件设计</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">论文</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color4">ROS</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">编译</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">调试</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">机器人系统开发</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color4">编辑器</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">组件</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color5">ompl</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color5">深度学习</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color1">caffe</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color4">卷首语</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color3">整机</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color2">库</a>
              </li>
             
              <li class="article-tag-list-item">
                <a href="javascript:void(0)" class="color5">建模文档</a>
              </li>
            
            <div class="clearfix"></div>
          </ul>
        </div>
        <ul class="search-ul">
          <p q-show="jsonFail" style="padding: 20px; font-size: 12px;">
            缺失模块。<br/>1、在博客根目录（注意不是yilia根目录）执行以下命令：<br/> npm i hexo-generator-json-content --save<br/><br/>
            2、在根目录_config.yml里添加配置：
<pre style="font-size: 12px;" q-show="jsonFail">
  jsonContent:
    meta: false
    pages: false
    posts:
      title: true
      date: true
      path: true
      text: true
      raw: false
      content: false
      slug: false
      updated: false
      comments: false
      link: false
      permalink: false
      excerpt: false
      categories: false
      tags: true
</pre>
          </p>
          <li class="search-li" q-repeat="items" q-show="isShow">
            <a q-attr="href:path|urlformat" class="search-title"><i class="icon-quo-left icon"></i><span q-text="title"></span></a>
            <p class="search-time">
              <i class="icon-calendar icon"></i>
              <span q-text="date|dateformat"></span>
            </p>
            <p class="search-tag">
              <i class="icon-price-tags icon"></i>
              <span q-repeat="tags" q-on="click:choseTag(e, name)" q-text="name|tagformat"></span>
            </p>
          </li>
        </ul>
    	</section>
    

    

    
    	<section class="tools-section tools-section-me" q-show="aboutme">
  	  	
  	  		<div class="aboutme-wrap" id="js-aboutme">本科学机械，硕士程序员，读书在中南，工作在中兴。</div>
  	  	
    	</section>
    
  </div>
  
</div>
    <!-- Root element of PhotoSwipe. Must have class pswp. -->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

    <!-- Background of PhotoSwipe. 
         It's a separate element as animating opacity is faster than rgba(). -->
    <div class="pswp__bg"></div>

    <!-- Slides wrapper with overflow:hidden. -->
    <div class="pswp__scroll-wrap">

        <!-- Container that holds slides. 
            PhotoSwipe keeps only 3 of them in the DOM to save memory.
            Don't modify these 3 pswp__item elements, data is added later on. -->
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>

        <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
        <div class="pswp__ui pswp__ui--hidden">

            <div class="pswp__top-bar">

                <!--  Controls are self-explanatory. Order can be changed. -->

                <div class="pswp__counter"></div>

                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>

                <button class="pswp__button pswp__button--share" style="display:none" title="Share"></button>

                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>

                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>

                <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
                <!-- element will get class pswp__preloader--active when preloader is running -->
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                      <div class="pswp__preloader__cut">
                        <div class="pswp__preloader__donut"></div>
                      </div>
                    </div>
                </div>
            </div>

            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div> 
            </div>

            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>

            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>

            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>

        </div>

    </div>

</div>
  </div>
</body>
</html>